2012-01-07 84 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']