我有一个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
非常感谢!
编辑:
我已尝试过以下两条建议。使用formset肯定更容易和更好。
答案 0 :(得分:5)
我认为你最好在这里使用formsets。它们的设计完全符合您的目的 - 处理表单中可变数量的项目。
答案 1 :(得分:0)
在这一行:
self.fields [entry] = forms.DecimalField(max_digits = 4,decimal_places = 1,label = nice_label)
条目是一个模型实例。但字段由字段名称(字符串)键入。尝试类似:
self.fields [entry.entry_name] = forms.Decimal(...)
(替换为“entry_name”)。