一尘不染

如何在Django-Rest-Framework序列化程序中获取Request.User?

django

我已经尝试过类似的方法,但是它不起作用。

class PostSerializer(serializers.ModelSerializer):

    class Meta:
        model = Post

    def save(self):
        user = self.context['request.user']
        title = self.validated_data['title']
        article = self.validated_data['article']

我需要一种能够从我的Serializer类访问request.user的方法。


阅读 742

收藏
2020-04-03

共1个答案

一尘不染

你不能request.user直接访问。你需要访问请求对象,然后获取用户属性。

像这样:

user =  self.context['request'].user

为了更安全,

user = None
request = self.context.get("request")
if request and hasattr(request, "user"):
    user = request.user
2020-04-03