您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Django Rest Framework中过滤嵌套的序列化器?

如何在Django Rest Framework中过滤嵌套的序列化器?

你可以子类化ListSerializer并覆盖该to_representation方法

认情况下,该to_representation方法调用data.all()嵌套的查询集。因此,你实际上需要data = data.filter(**your_filters)调用方法之前进行制作。然后,你需要将子类化的ListSerializer添加为嵌套序列化器的Meta上的list_serializer_class

class FilteredListSerializer(serializers.ListSerializer):

    def to_representation(self, data):
        data = data.filter(user=self.request.user, edition__hide=False)
        return super(FilteredListSerializer, self).to_representation(data)


class EditionSerializer(serializers.ModelSerializer):

    class Meta:
        list_serializer_class = FilteredListSerializer
        model = Edition


class QuestionnaireSerializer(serializers.ModelSerializer):
    edition = EditionSerializer(read_only=True)
    company = serializers.StringRelatedField(read_only=True)

    class Meta:
        model = Questionnaire
Go 2022/1/1 18:23:48 有388人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶