首页 文章

我无法实现modelformset为额外的表单设置初始值

提问于
浏览
1

这是我的代码:

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类时指定初始参数,可以为formset中的表单指定初始数据 . 但是,对于模型表单集,初始值仅适用于额外的表单,即未附加到现有模型实例的表单 . 如果用户未更改带有初始数据的额外表单,则不会验证或保存这些表单 .

理论上,初始值应适用于所有额外形式 . 为什么仅适用于第一个额外的表格?

1 回答

  • 2

    对于表单集, initial 是字典列表,其中每个字典是 one 表单的初始数据 .

    这允许您为每个额外的表单提供不同的初始数据,例如:

    initial = [{'configuration': 'configuration1',},
              {'configuration': 'configuration2',},
              {'configuration': 'configuration3',},
              ]
    

    如果您希望每个表单都有相同的初始数据,您可以执行以下操作:

    initial = [{'configuration': configuration,}] * 3)
    

相关问题