2
我有一个串行2个SerializerMethodFields。其中一个返回obj.somelist.count()罚款。但是,在我要求其他方法返回obj.somelist [0]我得到一个TypeError“RelatedManager”对象不支持索引。任何意见非常感谢。 下面是一些代码:Django的REST框架SerializerMethodField类型错误:“‘RelatedManager’对象不支持索引”
class TripPlaceSerializer(serializers.ModelSerializer):
class Meta:
model = TripPlace
fields = ('trip', 'place',)
class StopSerializer(serializers.ModelSerializer):
class Meta:
model = TripPlace
fields = ('place',)
depth = 1
class TripSerializer(serializers.ModelSerializer):
stops = StopSerializer(read_only=True, many=True)
stops_count = serializers.SerializerMethodField()
car = CarSerializer(read_only=True, many=False)
origin = serializers.SerializerMethodField()
# final = serializers.SerializerMethodField()
class Meta:
model = Trip
fields = ('id', 'name', 'owner', 'car', 'stops_count', 'stops', 'origin',)
def get_stops_count(self, obj):
return obj.stops.count()
def get_origin(self, obj):
return obj.stops.first()
' ''.first()'''返回第一个停止实例,但是现在表示行程和地点之间的连接表的模型,这是StopSerializer的深度为1的地方正在返回类型为“TripPlace”的对象是不可序列化。更新的代码^。之前它渲染得很好。 – alirk
@alirk对不起朋友,如果答案解决了你原来的问题,你可以考虑问一个新问题。 –
感谢您的帮助:) – alirk