Django 更改继承的表单元 class

Django Change inherited form meta class

我想编辑从 ModelForm 继承其数据的表单的 Meta Class。我只想添加一个字段,我不想重复所有表格。

# NuevaBibliotecaCompartida is a ModelForm

class EditarBibliotecaCompartida(NuevaBibliotecaCompartida):

    class Meta:
        fields = ('nombre', 'direccion', 'imagen', 'punto_google_maps')

当然,我收到错误 ModelForm has no model class specified,因为我在添加字段时覆盖了 Meta class。我该如何解决这个问题?

您需要明确地 class parent 的 Meta class:

class Meta(NuevaBibliotecaCompartida.Meta):
    # `model` will now be inherited
    fields = ('nombre', 'direccion', 'imagen', 'punto_google_maps')

如果您不想键入父表单的字段 class 您也可以使用 ParentClass.Meta.fields:

class Meta(NuevaBiblioteca.Meta):
    fields = NuevaBiblioteca.Meta.fields + ('YourAddedFormField',)