使用型号ID获取完整的相关模型详细信息:Django REST

问题描述 投票:0回答:1

我有两个模型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')

这样我就可以访问用户的所有项目列表。但是这里的字段项只返回'item id',我需要与用户相关的整个项目模型。我怎么才能得到它?

django-models django-rest-framework django-serializer
1个回答
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')
© www.soinside.com 2019 - 2024. All rights reserved.