如何从django forms.Form中排除字段?

时间:2012-01-07 20:59:06

标签: python django django-forms

我想这是关于django表格的另一个简单问题,我正在努力寻找答案。

说我有以下

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类中尝试了exclude =(a,),但是不起作用,表单验证一直在我身上失败。

提前致谢

2 个答案:

答案 0 :(得分:3)

你试过了吗?

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

答案 1 :(得分:1)

您可以覆盖该字段并将其设置为“无”

class Form3(Form1,Form2):

a = None

以下是参考: https://code.djangoproject.com/ticket/8620#no1