我有一组是指一个单一的模式特殊形式,我已经定义了一个共同的:Django表单如何创建一个简单的混入
class myBaseFormMixin(forms.Form):
data_prod = forms.DateField(initial=datetime.date.today, label='Data')
class Meta:
model = mymodel
def clean(self):
if self.data["a"]=='off':
raise forms.ValidationError("check A")
然后在我的specialform补充说:
class SpecialManForm(forms.ModelForm,myBaseFormMixin)
def __init__(self, *args, **kwargs):
super(SpecialManForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
'Description',
Row(
Div('field_a', css_class='large-3 columns '),
),
),
一切似乎很好,在形式从模型中元密新的所有字段都可以,但干净()从混入不执行,如果我追加DEF C工件精益() SpecialManForm,为什么发生这种情况?
我错过了什么吗?在此先感谢
所以你实际上没有现在需要一个额外的类。 –
你为什么这么说?只有一个类被用作其他人的基础...所以:SpecialManForm - > ModelForm - > myBaseFormMixin,成为SpecialManForm - > myBaseFormMixin – user2239318
你确实问过如何使用mixins,这就是我的答案告诉你如何去做的。他们有效地完成了同样的事情,但我的解决方案使用较少的代码并创建较少的类。 –