如何确保在我的Django管理表单中显示一个额外的字段?

时间:2019-06-14 06:12:01

标签: django django-forms django-admin

我有以下代码:

class MyModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyModelForm, self).__init__(*args, **kwargs)
        self.fields['extra_field'] = forms.CharField(
            label=_('Extra field'),
            max_length=255
        )

    class Meta:
        model = MyModel
        fields = '__all__'


class MyModelInline(admin.StackedInline):
    extra = 0
    model = MyModel
    form = MyModelForm

我添加的额外字段未显示在表单中。请注意,额外字段不是数据库中存在的字段。这只是专门针对此表单的内容。如何确保多余的字段以及所有其他数据库字段自动显示在表单中?我不想要一种必须手动提及self.fields属性中每个字段的方法。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您无需覆盖 __init__() 方法,只需将字段设置为常规方式

class MyModelForm(forms.ModelForm):
    extra_field = forms.CharField(label=_('Extra field'), max_length=255)

    class Meta:
        model = Session
        fields = '__all__'