如何解决初始化Django模型formset附加表单字段
我对ModelFormset
有以下定义:
class MyModelDetailsForm(forms.ModelForm):
status = forms.ChoiceField(choices=MyModel.STATUS)
class Meta:
model = MyModel
fields = ['id']
MyModelDetailsFormset = modelformset_factory(
MyModel,form=MyModelDetailsForm,extra=0)
这就是我在get_context_data
中创建实例的方式
formset = MyModelDetailsFormset(queryset=self.my_models)
如果我这样初始化status
字段:
for form in formset:
form.fields['status'].initial = get_initial_value()
一切正常。
如果我想做这样的事情(回答https://stackoverflow.com/a/23497278之后):
formset = MyModelDetailsFormset(queryset=self.my_models,initial=[{'status':1},{'status':2}])
初始值不起作用。我的意思是:
for form in formset:
print(form.fields['status'].initial)
打印None
为什么会这样?我想念什么吗?
解决方法
我看到我犯了错误。根据{{1}}:
但是,对于模型表单集,初始值仅适用于额外的表单,那些未附加到现有模型实例的表单。
换句话说,似乎没有办法用初始字典初始化这些值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。