django - 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)
解决方案
request
参数被传递给方法post
。就像您可以定义和使用其参数的任何普通函数一样。
但既然post
是一种方法,它就需要self
争论。您可以访问类方法和属性,包括request
.
他们是一样的。
当request
传递给你的函数时,只需使用request
,但如果没有,你需要请求使用self.request
。
推荐阅读
- angular - 角度源映射 sourceMappingUrl 损坏
- c++ - BST 读取大小无效
- reactjs - React: loop through array response does not work
- python - 如何在 numpy 或 pytorch 中矢量化自定义算法?
- django - Django“NameError:名称'CarImageForm'未定义”用于自引用表单
- javascript - 街景显示用户设定的步伐和路线
- python - 如何在 Windows 上使用 subprocess.run 运行 bash 命令
- amazon-web-services - 来自 Lambda 的 AWS Secrets Manager 调用返回 null/none
- ruby - 为什么在运行 ruby 应用程序的 docker 容器中大约 60 秒后 Phusion Passenger 会超时?
- c# - 如何将 appsettings 中的默认值设置为 API 模型上的属性