向 ModelForm 添加额外字段
Posted
技术标签:
【中文标题】向 ModelForm 添加额外字段【英文标题】:add extra field to ModelForm 【发布时间】:2015-08-26 00:06:44 【问题描述】:我正在像这样向 Django ModelForm 添加一个额外的字段:
class form(forms.ModelForm):
extra_field = forms.CharField(label='Name of Institution')
class Meta:
model = db_institutionInstitution
fields = ['conn_kind','time','inst_name2']
该表单实际上工作正常,但我无法预先填充它。我在modelformset_factory
中使用它:
formset = modelformset_factory(db_institutionInstitution,form=form)
我手动运行一个查询集,并在字典中添加表单集中附加表单所需的条目。但是,当我打电话时:
formset1 = formset(prefix='brch',queryset=qs1)
extra_field
未按预期预填充(其余工作正常)。
谁能帮忙?
【问题讨论】:
【参考方案1】:如果你想设置一个默认值。
extra_field = forms.CharField(label='Name of Institution', initial="harvard")
如果您想动态设置一个值,请将其放在表单初始化中:
def __init__(self, *args, **kwargs):
super(form, self).__init__(*args, **kwargs)
self.fields['extra_field'].initial = "harvard"
【讨论】:
“默认”应该是“初始”AttributeError: module 'django.forms' has no attribute 'Charfield'
。任何人都知道这个答案将如何在 django 2.1 中工作?
有'CharField'
如果我这样做,我的 form.is_valid()
总是返回 false以上是关于向 ModelForm 添加额外字段的主要内容,如果未能解决你的问题,请参考以下文章
Django 将额外字段添加到从模型生成的 ModelForm