从复杂的Django表单获取POST数据?
我有一个Django表单,根据年份和月份会使用不同数量的字段。所以我这样创建表单字段:
for entry in entry_list:
self.fields[entry] = forms.DecimalField([stuffhere])
但是现在我不知道怎么获取提交的表单数据。
通常我会这样做:
form.cleaned_data["fieldname"]
但我不知道字段的名称是什么。调试界面显示我的POST数据只是“Entry Object”,值是“u''”。调用POST.lists()也没有显示任何内容。
我确定我漏掉了一些明显的东西,但我已经卡在这里好几天了。有没有更好的方法?所有数据都在请求对象里,但我就是不知道怎么用它?
这是模型/表单/视图的代码:http://pastebin.com/f28d92c0e
非常感谢!
编辑:
我试过下面的两个建议。使用表单集确实更简单、更好。
2 个回答
0
在这一行代码中:
self.fields[entry] = forms.DecimalField(max_digits=4, decimal_places=1, label=nice_label)
这里的entry是一个模型实例。但字段是通过字段名称(字符串)来索引的。你可以试试这样写:
self.fields[entry.entry_name] = forms.Decimal(...)
(把“entry_name”换成合适的字段名称)。
5
我觉得你可以试试用表单集。它们正好是为你想做的事情设计的——处理表单中数量不固定的项目。