2014-02-14 30 views
0

在具有多個表單的表單集中,每個表單都獲得一個唯一的id,如「MyForm-0_form」,而MyForm是一個公共前綴,0是迭代表單索引。Django - 如何在formset中獲取每個表單的前綴

假設模板看起來像這樣

template.py:

<form action="" method="POST> 
{% for form in formset %} 
{{form} 
{% endfor %} 
</form> 

當表單被提交,我想這樣做如下:

圖.py:

[...] 
if request.method == "POST": 
    if formset.isValid(): 
    for form in formset: 
     print form.currentFormID #here i get stuck. What I would like to yield: MyForm-0 
+0

你,因爲你使用兩種不同的模式要這個?也許這是你在找什麼:http://stackoverflow.com/questions/6003984/django-how-to-save-a-formset-based-on-two-models – Thomas

+0

我想這樣做,因爲我只想在formset中使用其中一種形式。 不幸的是,我無法使用form_hasChanged(),因爲我在表單中注入了很多數據,這些數據實際上都會改變。不過,我只需要其中的一個。 –

回答

0

在表單實例中使用prefix參數。

form1 = FormFirst(request.POST, prefix='form1') 
form2 = FormSecond(request.POST, prefix='form2') 

使用前綴的優點是你不需要手動重命名字段

2

試試這個:

if request.method == "POST": 
    if formset.is_valid(): 
     for form in formset: 
      print form.prefix 
相關問題