从复杂的Django表单获取POST数据?

时间:2009-07-15 10:22:07

标签: python django django-forms

我有一个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肯定更容易和更好。

2 个答案:

答案 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”)。

相关问题