我在django表单中有一个名为“approvedamount
”的字段,该字段正在浏览器中填充但未在request.POST值中显示。
如果在Post上对请求变量的QueryDict进行查看,则显示值为(5000) - 如下:
QueryDict: QueryDict: {u'csrfmiddlewaretoken': [u'bec667f48284f2478fa91bd54c2ca706', u'bec667f48284f2478fa91bd54c2ca706'], u'approve': [u'approved', u'approved'], u'submit_approval_update_15884': [u'Update'], u'declinecode': [u'Please Select', u'Please Select'], u'approvedamount': [u'5000', u'']}
但是,如果您执行request.POST['approvedamount']
或request.POST.get('approvedamount')
,则返回空字符串
我还在chrome调试工具中验证了输入框的值已设置,但由于某种原因,它不会在回发到Django上。
答案 0 :(得分:2)
您的表单似乎有问题,因为在QueryDict中设置了两次值。 u'approvedamount': [u'5000', u'']
向您显示您有两个u'approvedamount值,第二个值为空。默认情况下,QueryDict的get()
为您提供后者,它是空的。
您应该修改表单,但如果您想使用第一个提交的值,则可以使用getlist
:
request.POST.getlist('approvedamount')[0]
答案 1 :(得分:0)
如果表单是根据模板构建的,那么您的approvedamount
应该包含name
属性。它应该是这样的:
<input class="form-field" name="approvedamount">