小编典典

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

all

我试过这样的东西,它不起作用。

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 的方法。


阅读 192

收藏
2022-07-08

共1个答案

小编典典

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

像这样:

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

或者为了更安全,

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

更多关于额外上下文的信息可以在这里阅读

2022-07-08