我在Django身上遇到了一件奇怪的事情,这是我的views.py:
def api(request):
return HttpResponse("%s %s" % (request.method,request.raw_post_data))
现在,我用POSTMAN ( google的小应用程序)制作了一个HTTP。
我让邮递员在原始字段中用'test‘发出一个帖子请求。
Django返回3种不同的东西(随机):
有时Django返回“GET”,有时什么也不返回,有时返回:
AttributeError at /
'WSGIRequest' object has no attribute 'raw_post_data'
Request Method: GET
Request URL: https://api.mywebsiteurl.com/
Django Version: 1.6.2
Exception Type: AttributeError
Exception Value:
'WSGIRequest' object has no attribute 'raw_post_data'
Exception Location: /home/spice_dj/spice/views.py in api, line 17
Python Executable: /usr/bin/python
Python Version: 2.7.3
Python Path:
['/usr/local/lib/python2.7/dist-packages/South-0.8.4-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/home/spice_dj']
Server time: Wed, 12 Mar 2014 22:51:11 -0400
发布于 2014-03-12 18:57:25
属性
HttpRequest.raw_post_data
在1.4中被重命名为HttpRequest.body
。向后兼容性将被删除--HttpRequest.raw_post_data
将不再工作。
动机在相关票中描述。
request.raw_post_dat
a是个坏名字。它与POST
没有任何关系,特别是它只是HTTP请求的主体。这让用户感到困惑,并使Django看起来不理解HTTP是如何工作的。我们应该将名称更改为request.body
,并启动一个弃用过程。
使用request.body
def api(request):
return HttpResponse("%s %s" % (request.method, request.body))
希望这能有所帮助。
https://stackoverflow.com/questions/22368190
复制相似问题