2011-02-11 46 views
0

我想製作購買門票的表單。問題是,對於每一個事件,可能會有不同類型的票與不同的價格。帶附加元數據的Django動態表格

各類的票,我將不得不創建一個編輯框,用戶可以選擇他是多麼希望門票。

然後在視圖類,我將只顯示動態地創建形式......我現在看到的唯一的問題是,我不知道在哪裏保存每個機票價格信息,所以我可以在容易顯示出來編輯框在哪一行?

P.S.我也不能確定我怎麼能動態地創建使用Django形式...但是這必須是容易的;)

附:表單必須是這樣的:

-------------------------------------------------------- 
| 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

這是很容易的。不要考慮製作動態表單,而應考慮製作動態字段。

你會有一種形式。初始化它時,您會傳遞關於可用票證的信息。在表單的init中,您將通過追加self.fields動態添加字段對象到表單。

例子:

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

注:

  1. 你需要在做的第一件事情你的init是彈出你的自定義值。
  2. 您需要在init中做的第二件事是用* args和** kwargs調用超類的init

如果你不按照這個順序做這兩件事,你會得到錯誤。

肖恩

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

1

首先,你想在PHP。不要這樣做。不需要類似數組的HTML元素名稱。

我不能完全肯定我理解您的需求,但它聽起來像一個formset會做你想要什麼。

+0

我可以將一個電子郵件字段添加到這個表單集(這是輸精管從其他重複行的表單集)?像上面的圖片一樣? – 2011-02-11 14:37:59