如何在Django-Rest-Framework序列化程序中获取Request.User? [英] How to get Request.User in Django-Rest-Framework serializer?

查看:108
本文介绍了如何在Django-Rest-Framework序列化程序中获取Request.User?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've tried something like this, it does not work.

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']

我需要一种能够从以下位置访问request.user的方法我的序列化器类。

I need a way of being able to access request.user from my Serializer class.

推荐答案

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

You cannot access the request.user directly. You need to access the request object, and then fetch the user attribute.

就像这样:

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

或更加安全,

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

有关更多上下文的更多信息,请点击此处

这篇关于如何在Django-Rest-Framework序列化程序中获取Request.User?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆