【问题标题】:add extra field to ModelForm向 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 未按预期预填充(其余工作正常)。

谁能帮忙?

【问题讨论】:

    标签: django forms modelform


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 2011-08-08
    • 2018-10-10
    • 2019-12-30
    • 2018-01-19
    • 1970-01-01
    • 2012-11-13
    • 2010-11-12
    相关资源
    最近更新 更多