Python Django HttpRequest问题
我现在正试图在django中获取表单字段的值Python Django HttpRequest问题,python,django,Python,Django,我现在正试图在django中获取表单字段的值 xxx = request.POST[u'a1'] 给了我一个价值,但是 xxx = request.POST.get(u'a1') 什么也没给我 我做错了什么 更新: 使用第一种方法request.method=POST, 使用第二种方法将其更改为 我所做的就是替换一行代码 英格玛,是的,这是真的 Shawn,第一个方法生成DEBUG:root:[(u'a1',u'a1_6') 第二个方法生成DEBUG:root:[]get方法接受两个参数:k
xxx = request.POST[u'a1']
给了我一个价值,但是
xxx = request.POST.get(u'a1')
什么也没给我
我做错了什么
更新:
使用第一种方法request.method=POST,
使用第二种方法将其更改为
我所做的就是替换一行代码
英格玛,是的,这是真的
Shawn,第一个方法生成DEBUG:root:[(u'a1',u'a1_6')
第二个方法生成DEBUG:root:[]get方法接受两个参数:key和一个返回值,用于不匹配key的地方(默认为None)。可能第一个示例仅适用于表单字段“a1”中有值的情况。
要么为get方法设置一个返回值(例如,
xxx=request.POST.get(u'a1',something')
),要么提前检查表单中是否有该字段(如果request.POST中有u'a1…
)有点让人困惑,但我理解你的方式,您有一个请求,该请求在某一点上包含一个QueryDict,其数据位于request.POST中,但在代码的稍后点上,它在request.POST中包含一个空QueryDict:{},您正在查找数据消失的原因和位置
假设HttpRequest中的QueryDict是不可变的,不能更改。因此,您可能不应该寻找更改request.POST QueryDict值的代码,而应该寻找用另一个代码替换整个request.POST QueryDict的代码
我猜您是在代码中的某个点将值'GET'分配给request.method,因为您说在函数2中,request.method更改为GET
在修补前一段时间放置的类型的响应时,我发现如果response.method发生更改,django实际上会将逻辑应用于HttpResponse对象,从而导致request.POST QueryDict发生更改 谢谢,对于第一个方法(arrival1=request.POST[u'a1'])调试状态:debug:root:debug:root:arrival1:a14第二个方法(arrival1=request.POST.get(u'a1','')生成debug:root:arrival1:似乎第二个方法出于某种原因正在清除字典。这很奇怪。通过
request.POST.items()
你能得到什么?非常奇怪。你是不是在某个偶然的地方覆盖了你的请求或帖子?否则的话,看起来确实有些东西坏了。测试您的querydict是否正常工作:from django.http导入querydict;q=QueryDict(“a=1&b=2”);q['a']==q.get('a')
应输出True
。