我想扩展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')
Run Code Online (Sandbox Code Playgroud)
那甚至会起作用吗?或者它只是从SocialForm中删除BasicForm中的其他字段?
这样做的正确方法是什么?
Gho*_*r21 45
这是一个迟到的答案,但我想要注意你可以Meta像这样子类化内部类:
class SocialForm(BasicForm):
class Meta(BasicForm.Meta):
fields = BasicForm.Meta.fields + ('facebook', 'twitter')
Run Code Online (Sandbox Code Playgroud)
这样您就不必重复model = Business定义,Meta您可以添加的任何其他属性BasicForm将自动继承SocialForm.
作为参考,这里是关于这种方法的Django文档.