Django Rest Framwork在序列化器中获得用户 [英] Django Rest Framwork get user in serializer
问题描述
我可以让用户进入我的序列化程序吗?
I can get the user in my serializer?
例如,我有这个序列化器:
For example I have this serializer:
serializers.py
class ClientSearchSerializer(serializers.ModelSerializer):
client = serializers.SlugRelatedField(
many=False,
queryset=Client.objects.filter(user=????),
slug_field='id'
)
我可以从SlugRelatedField过滤查询集吗?
I can filter my queryset from SlugRelatedField?
推荐答案
CurrentUserDefault
应该适合您.
Documentation: http://www.django-rest-framework.org/api-guide/validators/#currentuserdefault
请注意:
要使用此功能,必须已将请求"作为实例化序列化程序时使用上下文字典.
In order to use this, the 'request' must have been provided as part of the context dictionary when instantiating the serializer.
如果您使用的是 ModelViewSet
或任何采用 serializer_class
并自动为您初始化的视图/视图集,则不必担心.
If you're using ModelViewSet
or any view/viewset that takes a serializer_class
and automatically initializes it for you, then you don't have to worry about that.
代码示例:
from rest_framework.fields import CurrentUserDefault
class ClientSearchSerializer(serializers.ModelSerializer):
client = serializers.SlugRelatedField(
many=False,
queryset=Client.objects.filter(user=CurrentUserDefault()),
slug_field='id'
)
这篇关于Django Rest Framwork在序列化器中获得用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!