2012-01-07 72 views
1

我想這是另一個簡單的Django表單的問題,我正在努力尋找答案。如何從django forms.Form中排除字段?

說我有以下

class Form1(forms.Form): 
    a=forms.CharField(label=_("A"),max_length=40) 
    b=forms.CharField(label=_("B"),max_length=40) 

class Form2(forms.Form): 
    c=forms.CharField(label=_("C"),max_length=40) 
    d=forms.CharField(label=_("D"),max_length=40) 

class Form3(Form1,Form2): 

    def __init__(self, *args, **kw): 
     Form1.__init__(self,*args, **kw) 
     Form2.__init__(self,*args, **kw) 

#Here I don't want to have a from Form1 
# how can I exclude it so that validation does not bark?? 

我試圖排除=(一)在Form3定義,但不工作的Meta類,表單驗證不停地進行故障形成了我。

在此先感謝

+0

爲什麼你想合併兩種形式?爲什麼不在你的觀點中單獨處理表格呢? – 2012-01-07 21:13:52

+0

原因在於我維護其驗證邏輯的每種形式。我創建的小單位是我繼承的一些項目的邏輯分組,並在單獨的表單中定義驗證。然而,即使對於單一形式,我也沒有看到如何排除某些字段,因爲它在ModelForm中可能是可能的? – user1039384 2012-01-07 21:16:52

+0

只需提一下,我目前通過在Form3 .__ init__中將所需字段a轉換爲False來解決此問題,並且不會在模板中顯示該字段。但是這有點不好... – user1039384 2012-01-07 21:25:08

回答

2

你試過:

def __init__(self, *args, **kwargs): 
    super(Form3, self).__init__(*args, **kwargs) 
    del self.fields['a']