这是我的代码:
GaugeFormSet = modelformset_factory(GaugeConfiguration,form=GaugeConfigurationForm, extra=3, fields='__all__')
gauges = GaugeConfiguration.objects.filter(configuration=configuration)
gaugeformset = GaugeFormSet(queryset=gauges, initial=[{'configuration':configuration,}])
问题是初始参数仅适用于第一个额外形式,而不适用于其他形式。
我在Django Documentation中找到了这个:
提供初始值
与常规表单集一样,通过在实例化modelformset_factory()返回的模型formset类时指定初始参数,可以为表单集中的表单指定初始数据。但是,对于模型表单集,初始值仅适用于额外的表单,即未附加到现有模型实例的表单。如果用户未更改带有初始数据的额外表格,则不会对其进行验证或保存。
理论上,初始值应适用于所有额外形式。为什么只适用于第一个额外的表格?
答案 0 :(得分:2)
对于表单集,initial
是字典列表,其中每个字典是一个表单的初始数据。
这允许您为每个额外表单提供不同的初始数据,例如:
initial = [{'configuration': 'configuration1',},
{'configuration': 'configuration2',},
{'configuration': 'configuration3',},
]
如果您希望每个表单都有相同的初始数据,您可以这样做:
initial = [{'configuration': configuration,}] * 3)