首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django HttpRequest问题

Django HttpRequest问题
EN

Stack Overflow用户
提问于 2011-08-26 05:38:09
回答 2查看 417关注 0票数 3

现在,我正在尝试获取django中表单字段的值

代码语言:javascript
复制
xxx = request.POST[u'a1']

给了我一个价值,但是

代码语言:javascript
复制
xxx = request.POST.get(u'a1')

什么也没有给我

我做错了什么?

更新:

使用第一个方法request.method = POST,使用第二个方法将其更改为GET,

我所要做的就是替换一行代码。

Ingmar,是的,这确实返回true。

Shawn,第一个方法产生DEBUG:root:(u'a1',u'A1_6'),

第二种方法生成DEBUG:root:[]

EN

回答 2

Stack Overflow用户

发布于 2011-08-26 06:08:11

get方法有两个参数: key和一个返回值,表示没有匹配key的地方(缺省为None)。

也许第一个例子只有在表单的字段'a1‘中有一个值的情况下才有效。

或者为get方法设置返回值(例如xxx = request.POST.get(u'a1', 'something')),或者提前检查表单中是否有该字段(if u'a1' in request.POST ...)

票数 0
EN

Stack Overflow用户

发布于 2011-09-08 02:56:36

这是一个有点令人困惑的问题,但据我对您的理解,您有一个请求,该请求一度包含一个包含request.POST格式数据的QueryDict,但在稍后的代码中,它在request.POST中包含一个空的QueryDict:{},并且您要查找数据消失的原因和位置。

Django docs说HttpRequest中的QueryDict是不可变的,并且不能更改。因此,您可能不应该寻找更改request.POST QueryDict的值的代码,而应该寻找用另一个request.POST QueryDict替换整个request.POST QueryDict的代码。

我的猜测是,您在代码中的某个时刻将值' GET‘赋给了request.method,因为您说在第二个函数中,request.method被更改为GET

在修改一段时间前PUT类型的响应时,我发现如果response.method发生变化,django实际上会将逻辑应用于HttpResponse对象,从而导致request.POST QueryDict发生变化。

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

https://stackoverflow.com/questions/7197534

复制
相关文章

相似问题

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