Django DRF Serializer基于用户的嵌套字段列表中的切片数量

wfauudbj  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(121)

我想问一下如何在DRF中对嵌套列表进行切片。我有模型商店,经理,产品.
序列化程序返回具有嵌套字段的存储对象。
我想做的是切片的值,不返回所有,只是返回商店,与前3名经理和每个经理的前3名产品。并根据用户执行此操作,如果是主管,则返回完整列表,如果是经理,则仅返回有限列表。
我想无论如何我需要为每个使用类型使用不同的序列化器,但是如何切片嵌套的值,只返回前3个?
亲切的问候

7qhs6swi

7qhs6swi1#

可以使用SerializerMethodField

class ManagerSerializer(serializers.ModelSerializer):
    store = serializers.SerializerMethodField()

    class Meta:
        fields = ("store",)
        model = User
    def get_store(self, user):
        if user.is_supervisor:
            return AllStore
        else:
            return LimitedStore

相关问题