过滤Django ResourceRelatedField的queryset

时间:2019-11-27 08:28:58

标签: python django django-rest-framework jsonapi-serialize

在我们的项目中,我们将ResourceRelatedField用于其中一个序列化程序中的外键字段,以符合JSON:API格式。看起来是这样:

    types = ResourceRelatedField(
        queryset=Type.objects,
        many=True
    )

我遇到的问题是,我想从此字段的查询集中排除某些项目,以便我不会从Type模型中得到所有项目,而只是一个子集。

如果我写这样的东西不起作用:

    types = ResourceRelatedField(
        queryset=Type.objects.exclude(id=13),
        many=True
    )

documentation中找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

也许您可以使用SerializerMethodResourceRelatedField吗? (未经测试)。

types = SerializerMethodResourceRelatedField(many=True)

def get_types(self, obj):
    return  Type.objects.exclude(id=13)