我已将User
扩展为MyUser
。
然后我有一个Item
,ForeignKey
到MyUser
。
在我的序列化程序中,我添加了这个:
class MyUserSerializer(serializers.HyperlinkedModelSerializer):
items = serializers.HyperlinkedRelatedField(many=True, view_name='item-detail', read_only=True)
class Meta:
model = MyUser
fields = (...., 'items')
如何确定项目中包含哪些字段,现在默认只包含U
....
"url": "http://192.168.0.110:8000/users/2/",
"items": [
"http://192.168.0.110:8000/items/1/",
"http://192.168.0.110:8000/items/2/"
]
我想说我想要包含该项目的名称以及其他一些字段?
答案 0 :(得分:1)
我认为你需要的是Nested Relationships。为此,您需要为Item
模型编写新的序列化程序并将其包含在MyUserSerializer
中:
class MyUserSerializer(serializers.HyperlinkedModelSerializer):
items = serializers.ItemSerializer(many=True)
class Meta:
model = MyUser
fields = (...., 'items', ...)
class ItemSerializer(serializers.ModelSerializer):
....
class Meta:
model = Item
fields = (....) # your fields
如果您还需要url
项目MyUserSerializer
,那么您可以使用ItemSerializer
扩展其他HyperlinkedModelSerializer
。