modelformset_factory的empty_form初始值

时间:2010-07-09 13:13:06

标签: django django-forms

我尝试将初始值添加到modelformset_factory的空格式中。

FormSet = modelformset_factory(MyModel, extra=2)
formset = FormSet(queryset=MyModel.objects.none(), initial=[{'foo': 'bar'}, {'foo': 'bar'}])

我想将初始值设置为formset.empty_form,我该如何实现?

2 个答案:

答案 0 :(得分:1)

您可以按照明确说明的in this other answer向表单集添加初始值。然后,您就可以在模板中设置empty_form,例如:

<form action="/contact/" method="post">{% csrf_token %}
   {% with formset.empty_form as form %}
      {% for field in form %}
         <div class="fieldWrapper">
            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
         </div>
      {% endfor %}
   {% endwith %}
   <input type="submit" value="Submit" />
</form>

答案 1 :(得分:0)

我不确定这是否是正确答案,但快速破解这项工作只是在formset初始化后使用您想要的表单重新分配empty_form。

formset = formset_factory(MyClass, **kwargs)
empty = formset.empty_form

# empty is a form instance, so you can do whatever you want to it
my_empty_form_init(empty_form)
formset.empty_form = empty_form

请注意,这会覆盖生成的formset的empty_form属性。