我对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
为什么会这样?我想念什么吗?
答案 0 :(得分:0)
我看到我犯了错误。根据{{1}}:
但是,对于模型表单集,初始值仅适用于额外的表单,那些未附加到现有模型实例的表单。
换句话说,似乎没有办法用初始字典初始化这些值。