2014-01-14 45 views
0

我已經將ModelForm子類化爲中間ModelForm2,以確保某些表單元素具有某些css類/小部件並刪除標籤後綴。 我的問題是: 這是一個壞主意,因爲它使得代碼的可移植性降低,以防丟棄ModelForm類? 這是代碼:是否將django基類繼承爲中間類是一個壞主意?

class ModelForm2(forms.ModelForm): 

    def __init__(self, *args, **kwargs): 
     kwargs.setdefault('label_suffix', '') 
     super(ModelForm2, self).__init__(*args, **kwargs) 
     for field in self.fields: 
      if isinstance(self.fields[field], forms.DateField): 
       self.fields[field].format = '%d/%m/%Y' 
       self.fields[field].widget.attrs['class'] = 'date' 
       self.fields[field].widget.attrs['type'] = 'text' 

我不是在尋找的意見,只是一個堅實的「最佳做法」的應答

回答

2

不,這不是一個壞主意,這是非常正常的「最好的練習'Django。

ModelForm是Django的核心部分,他們放棄它是非常不可想象的。

典型的Django項目將有許多來自Django基類的子類。

我會經常在我的項目的程序,我打電話core,或類似的東西,在這裏我把一些類,如BaseModelBaseForm等在那裏我已經定製了,我想通過我的所有項目的子類繼承的一些行爲。

+0

謝謝!這使我的立場更堅實:) – Alvaro

相關問題