Python 如何向django查询添加静态用户字段
我需要使用DRF执行一些特殊的序列化/反序列化,但其中一个必需参数是生成查询的用户 AFAIK aPython 如何向django查询添加静态用户字段,python,django,django-rest-framework,Python,Django,Django Rest Framework,我需要使用DRF执行一些特殊的序列化/反序列化,但其中一个必需参数是生成查询的用户 AFAIK aserializers.Field实例无权访问ViewSet,因此无法访问ViewSet.request.user owner = serializers.HiddenField( default=serializers.CurrentUserDefault() ) 所以我想我应该将用户作为静态字段添加到queryset中,这样每个记录都可以访问它 qry = qry.annotate(u
serializers.Field
实例无权访问ViewSet
,因此无法访问ViewSet.request.user
owner = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
所以我想我应该将用户作为静态字段添加到queryset中,这样每个记录都可以访问它
qry = qry.annotate(user=Value(user, models.ForeignKey(settings.AUTH_USER_MODEL)))
然而,这给了我
ValueError: Related model 'auth.User' cannot be resolved
我也试过了
q.annotate(user=Value(user, models.ForeignKey(user.__class__)))
但这也是例外
我必须包括哪些内容才能根据需要解决此问题?请查看:
可用于表示当前用户的默认类。为了使用此功能,在实例化序列化程序时,'request'
必须作为上下文字典的一部分提供
owner = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
要使用此功能,您需要执行以下操作:
serializer = AccountSerializer(account, context={'request': request})
实际上,这对我来说是开箱即用的<代码>自身。上下文['request']。用户
在字段中。to_表示