2009-07-15 40 views
0

我有一个基于年/月使用不同数量字段的Django表单。所以我创建这样的形式的字段:从复杂的Django表单获取POST数据?

for entry in entry_list: 
    self.fields[entry] = forms.DecimalField([stuffhere]) 

但现在我不知道如何从窗体中获取提交的数据。

通常我会做这样的事情:

form.cleaned_data["fieldname"] 

,但我不知道是什么字段的名称。调试屏幕将我的POST数据显示为“条目对象”,其值为“u”'“。调用POST.lists()不显示任何内容。

我相信我错过了一些显而易见的事情,但我一直坚持这几天太多。有一个更好的方法吗?请求对象中的所有数据,但我只是不知道如何使用它?

下面是模型/表格/视图代码:http://pastebin.com/f28d92c0e

,不胜感谢!

编辑:

我试过了以下两种建议。使用formset确实更容易和更好。

回答

5

我想你可能会更好在这里使用formsets。它们的设计与您似乎试图做的完全相同 - 处理表单中可变数量的项目。

+0

Formsets看起来正是我所需要的,谢谢。 – mdashx 2009-07-16 00:35:33

0

在这一行:

self.fields [条目] = forms.DecimalField(max_digits = 4,decimal_places = 1,标记= nice_label)

条目是一个模型实例。但是字段由字段名称(字符串)键入。尝试是这样的:

self.fields [entry.entry_name] = forms.Decimal(...)

(替代适合在 “条目名称”)。

+0

谢谢。我意识到,就在我今天上班之前。我会试一试formset,但是谢谢你帮我找到了我的表单中的错误,希望我的未来表单能够更好地工作。 – mdashx 2009-07-16 00:34:46