我有一組是指一個單一的模式特殊形式,我已經定義了一個共同的: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,這就是我的答案告訴你如何去做的。他們有效地完成了同樣的事情,但我的解決方案使用較少的代碼並創建較少的類。 –