【发布时间】:2020-09-14 01:14:04
【问题描述】:
注意:我是 django rest 框架的新手。第一个项目。我的模型有一个外键,在我通过 SlugRelatedField 链接的序列化程序中。此相关模型是一个可供选择的选项的小列表,但可供选择的选项取决于用户(或更具体地说是用户组)。
我找到了this 问题,该问题说明了如何让用户进入 serilaizer。但这似乎没有帮助,因为字段定义是静态的,对吧?
删除我拥有的不相关部分:
class MyModelSerializer(serializers.ModelSerializer):
sequence = serializers.SlugRelatedField(
many=False,
read_only=False,
slug_field='prefix',
queryset=Sequence.objects.filter(active=True,
sequence_groups__sequence_group_id__in=SequenceGroup.objects.filter(users=serializers.CurrentUserDefault()))
)
这个查询可以正常工作,因为我也以正常形式使用它。当我开始开发时。服务器出现异常:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'CurrentUserDefault'
所以我的问题是如何让当前用户进入 SlugRelatedField 的查询集?
【问题讨论】: