2017-07-31 33 views
1

我是新Django和試圖使保存的表單列表和處理它們的視圖。我熟悉的Django的但它僅擁有一個形式,它的通用視圖提供的FormView控件。 的想法是,在主窗體我有被分裂成幾個表格,然後把「迷你形式」在列表中(「形式」)舉行。 由於我分裂的形式進入部分和保存的表單列表(像重用性等原因),模板看起來是這樣的(這做的伎倆):Django的多重表格處理

... 
<form ...> 
    {% for form in forms %} 
    {{ form.as_p }} 
    {% endfor %} 
    <input type="submit"...> 
</form> 
... 

我一直弄亂應該處理表單的視圖,驗證它們並從中獲取數據。因爲我覺得像林使其複雜得多,它應該是,我想請您給了一個簡單的觀點的一個例子,是伊利諾伊州進一步發展(獲得

回答

0

這可能更多的是評論,但我沒有很足夠的代表爲註釋,所以我把這個在回答中迴應:

如果您主要關注的是重用你有沒有考慮建立的混入,而不是使表單列表 的例子嗎?這可能是:

from django import forms 

class NameFormMixin(object): 
    your_name = forms.CharField(label='Your name') 

class EmailFormMixin(object): 
    email = forms.EmailField(label='Your Email') 

class NameEmailForm(forms.Form, 
        NameFormMixin, 
        EmailFormMixin): 
    pass 

你可以包括你的驗證功能在mixin中,並有一般django形式函數在主窗體類中。

+0

感謝您的快速回復!我是用混入以類似的方式,但是當我仔細想想,你建議的方法,絕對可以使其在通用代碼(因爲我原來的計劃是使用的ModelForm的是多一點的每一部分非常小的成本更容易在我眼中靈活)。 – ofekzi