我想扩展 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/