我想扩展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的其他字段?
正确的做法是什么?
最佳答案
这是一个较晚的答案,但是我想指出,您可以像这样子类化内部Meta
类:
class SocialForm(BasicForm):
class Meta(BasicForm.Meta):
fields = BasicForm.Meta.fields + ('facebook', 'twitter')
这样,您不必重复
model = Business
定义,并且您可能添加到Meta
的任何其他BasicForm
属性将自动由SocialForm
继承。供参考,这里是此方法的Django documentation。
关于django - 子类化Django ModelForms,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10938521/