首页 > 解决方案 > django rest 框架请求与 self.request

问题描述

在 djnago rest 框架中 self.request 和 request 有什么区别,为什么我们不能总是使用 request 以及在什么情况下我们需要使用 self.request 或 request

class MyView(APIView):

    def post(self, request, format=None):
        data = self.request.data
        login(request, user)

我尝试打印它们,它们都返回相同的东西

<rest_framework.request.Request: POST '/url/sub_url'>

所以为什么我们用户喜欢

data = self.request.data
login(request, user)

标签: djangodjango-rest-framework

解决方案


request参数被传递给方法post。就像您可以定义和使用其参数的任何普通函数一样。

但既然post是一种方法,它就需要self争论。您可以访问类方法和属性,包括request.

他们是一样的。

request传递给你的函数时,只需使用request,但如果没有,你需要请求使用self.request


推荐阅读