Django表单 - 输入字段值未显示在request.POST中

时间:2012-05-16 21:38:49

标签: django django-forms django-views

我在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上。

2 个答案:

答案 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">