如何从django forms.Form中排除字段?
问题描述:
我想这是另一个简单的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类,表单验证不停地进行故障形成了我。
在此先感谢
答
你试过:
def __init__(self, *args, **kwargs):
super(Form3, self).__init__(*args, **kwargs)
del self.fields['a']
为什么你想合并两种形式?为什么不在你的观点中单独处理表格呢? – 2012-01-07 21:13:52
原因在于我维护其验证逻辑的每种形式。我创建的小单位是我继承的一些项目的逻辑分组,并在单独的表单中定义验证。然而,即使对于单一形式,我也没有看到如何排除某些字段,因为它在ModelForm中可能是可能的? – user1039384 2012-01-07 21:16:52
只需提一下,我目前通过在Form3 .__ init__中将所需字段a转换为False来解决此问题,并且不会在模板中显示该字段。但是这有点不好... – user1039384 2012-01-07 21:25:08