我有两个模型User和Item。 模型项是
class Item
owner = models.ForeignKey(User, related_name='items',null=True)
用户将拥有多个项目。用户序列化程序是
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','username','items')
这样我就可以访问用户所有项目的列表。但是在这里,字段项只返回'项ID',我需要与用户相关的整个项目模型。我怎么能得到它?
答案 0 :(得分:1)
对于相关对象的自定义列表(items
),您可以使用SerializerMethodField。我更喜欢为Item
对象编写另一个序列化程序,并使用它在此方法中进行序列化。
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
class UserSerializer(serializers.ModelSerializer):
items = serializers.SerializerMethodField()
def get_items(self, obj):
return ItemSerializer(obj.items, many=True).data
class Meta:
model = User
fields = ('id','username','items')