首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django不能访问raw_post_data

Django不能访问raw_post_data
EN

Stack Overflow用户
提问于 2014-03-13 02:54:26
回答 1查看 16.7K关注 0票数 18

我在Django身上遇到了一件奇怪的事情,这是我的views.py:

代码语言:javascript
代码运行次数:0
运行
复制
def api(request):
    return HttpResponse("%s %s" % (request.method,request.raw_post_data))

现在,我用POSTMAN ( google的小应用程序)制作了一个HTTP。

我让邮递员在原始字段中用'test‘发出一个帖子请求。

Django返回3种不同的东西(随机):

有时Django返回“GET”,有时什么也不返回,有时返回:

代码语言:javascript
代码运行次数:0
运行
复制
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
  1. 为什么Django会在我发出帖子请求时返回“GET”呢?
  2. 为什么它会给我那个错误?
  3. 为什么它不返回我在原始字段设置的“测试”?
EN

回答 1

Stack Overflow用户

发布于 2014-03-13 02:57:25

根据django 1.6反对时间线

属性HttpRequest.raw_post_data在1.4中被重命名为HttpRequest.body。向后兼容性将被删除-- HttpRequest.raw_post_data将不再工作。

动机在相关票中描述。

request.raw_post_data是个坏名字。它与POST没有任何关系,特别是它只是HTTP请求的主体。这让用户感到困惑,并使Django看起来不理解HTTP是如何工作的。我们应该将名称更改为request.body,并启动一个弃用过程。

使用request.body

代码语言:javascript
代码运行次数:0
运行
复制
def api(request):
    return HttpResponse("%s %s" % (request.method, request.body))

希望这能有所帮助。

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22368190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档