覆盖Django Forms的元类

问题描述

ContactForm是我的应用中的一种常见形式,已被多次使用。我已经在Foreign Key表中拥有Contact的{​​{1}}模型,因此解决方案中的accepted answer我有用。

但是当我不得不重用时,要在Guardian下面的字段中再次编写完整的表单会有点复杂。因此,请将ContactForm分开放置以使其可重用。

但是有时候ContactForm中的几个字段是可选的,因此无法再次重用相同的ContactForm

ContactForm

例如在class ContactForm(forms.ModelForm): class Meta: model = Contact fields = ("address","city","district","state","country","pincode","phone1","phone2","is_emergency") 上方,我只想在ContactForm中使用phone1phone2is_emergency标志。 是否通过继承GuardianFormMeta中来覆盖ContactForm类,例如:

GuardianForm

OR-有没有更好的标准方法解决此问题?

解决方法

我不确定您要达到的目标,但是这是扩展Django Forms的Meta类的方法:

class GuardianForm(ContactForm): 
    class Meta(ContactForm.Meta):
        fields = ("phone1","phone2","is_emergency")