Django动态形式与额外的元数据

时间:2011-02-11 09:13:10

标签: django django-forms

我想制作购买门票的表格。问题是,对于每个事件,可能存在不同类型的票价不同的票。

对于每种票,我都必须创建一个编辑框,用户可以在其中选择他想要的票数。

然后在视图类中我将只显示动态创建的表单...我现在看到的唯一问题是我不知道在哪里保存每个票价的信息所以我可以很容易地在编辑框所在的同一行?

P.S。我也不确定如何使用Django动态创建表单......但这必须很容易;)

P.S。表格必须是这样的:

--------------------------------------------------------
| Tiket Type      | Price       | How much? | Price    |
--------------------------------------------------------
| Tiket Type Name | Price $1.00 | [       ] | Price... | [tiketkind.id =  1]
| Tiket Type Name | Price $2.00 | [       ] | Price... | [tiketkind.id = 12]
| Tiket Type Name | Price $3.00 | [       ] | Price... | [tiketkind.id = 18]
| Tiket Type Name | Price $4.00 | [       ] | Price... | [tiketkind.id = 21]
--------------------------------------------------------
|                              TOTAL PRICE: | ...      |
--------------------------------------------------------
| Email: [                                           ] |
--------------------------------------------------------

2 个答案:

答案 0 :(得分:2)

这很简单。不要考虑制作动态表格,而是考虑制作动态字段。

你将有一个表格。初始化时,您将传递有关可用票证的信息。在表单的 init 中,您将通过附加到self.fields动态地将字段对象添加到表单中。

示例:

  

self.fields ['this_field_I_just_made_up'] = forms.CharField()

注意:

  1. 您在 init 中需要做的第一件事就是弹出自定义值。
  2. 您需要在 init 中做的第二件事是使用* args和** kwargs调用超类的 init
  3. 如果你不按顺序执行这两件事,就会出错。

    肖恩

    来源:http://groups.google.com/group/django-users/browse_thread/thread/3629184ceb11aeef

答案 1 :(得分:1)

首先,你在思考PHP。不要那样做。不需要类似数组的HTML元素名称。

我不完全确定我理解你的要求,但听起来像formset会做你想要的。