2012-06-07 92 views
13

我想擴展ModelForms,其主要目的是爲表單添加字段。我認爲這是比較容易看到的例子:子類化Django ModelForms

# Basic listing 
class BasicForm(ModelForm): 
    class Meta: 
     model = Business 
     fields = ('category', 'city', 'name', 'address', 
       'slogan', 'phone', 'website', 'email') 

class SocialForm(BasicForm): 
    class Meta: 
     model = Business 
     fields = ('facebook','twitter') 

會連工作?或者它只會從SocialForm中的BasicForm中清除其他字段?

這樣做的正確方法是什麼?

回答

36

這是一個遲到的回答,但我想指出,你也可以繼承內部Meta類是這樣的:

class SocialForm(BasicForm): 
    class Meta(BasicForm.Meta): 
     fields = BasicForm.Meta.fields + ('facebook', 'twitter') 

這樣,你就不必重複model = Business定義,以及任何其他Meta您可以添加到BasicForm的屬性將自動由SocialForm繼承。

作爲參考,這裏是關於這種方法的Django documentation

相關問題