如何确保在Django管理表单中显示额外字段?
我有以下代码:如何确保在Django管理表单中显示额外字段?,django,django-forms,django-admin,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_
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属性中的每个字段。谢谢您的帮助。我认为您不需要重写
\uuuu init\uuu()
方法,只需按常规方式放置字段即可
类MyModelForm(forms.ModelForm):
extra_field=forms.CharField(标签=u('extra field'),最大长度=255)
类元:
模型=会话
fields='\uuuuu all\uuuuu'
是的,这很有效。我把它放在init中,因为我希望它有一个基于对象是否存在的默认值。你知道我如何用你的方法做到这一点吗?你能把逻辑放在OP?Nvm中吗?这应该是一个单独的问题。
class MyModelForm(forms.ModelForm):
extra_field = forms.CharField(label=_('Extra field'), max_length=255)
class Meta:
model = Session
fields = '__all__'