使用模型 ID 获取完整的相关模型详细信息:Django REST
Get complerte related model details with model id: Django REST
我有两个模型用户和项目。
模型项目是
class Item
owner = models.ForeignKey(User, related_name='items',null=True)
一个用户将拥有多个项目。用户序列化程序是
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','username','items')
这样我就可以访问用户所有项目的列表。但是这里的字段项returns只有'item id',我需要与用户相关的整个项模型。我怎样才能得到它?
要自定义相关对象列表 (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')
我有两个模型用户和项目。 模型项目是
class Item
owner = models.ForeignKey(User, related_name='items',null=True)
一个用户将拥有多个项目。用户序列化程序是
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','username','items')
这样我就可以访问用户所有项目的列表。但是这里的字段项returns只有'item id',我需要与用户相关的整个项模型。我怎样才能得到它?
要自定义相关对象列表 (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')