使用模型 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')