我已经成功地使用 modelformset_factory 创建了我需要的表单。
avaluos = Avaluo.objects.filter(Estatus__contains='CONCLUIDO',Factura__isnull=True)
FacturaFormset = modelformset_factory(Avaluo,form=FacturaForm,extra=0)
目前这正在为找到的每一行生成以下 HTML:
<form id="id-FacturaForm" class="blueForms" method="post">[..]</form>
<form id="id-FacturaForm" class="blueForms" method="post">[..]</form>
<form id="id-FacturaForm" class="blueForms" method="post">[..]</form>
我想使用一个提交按钮提交所有表单。
有什么想法吗?
更新
我最终使用了 django-crispy-forms这让我可以为每一行生成输入,然后我只需手动添加表单并提交。
self.helper.form_tag = False
{{example_formset.management_form }}
{% for a,b in olist %}
{{ b.id }}
<tr>
<td style="width:10px;"> {% crispy b %} </td>
<td> {{a.id}} </td>
</tr>
{% endfor %}
请您参考如下方法:
阅读更多 model formsets .您不需要单独的 form 标签,这是使用 formset 的全部意义。
<form method="post" action="">
{{ factura_formset.management_form }}
<table>
{% for form in factura_formset %}
{{ form }}
{% endfor %}
</table>
</form>
此外,每次您在页面上多次使用 id 属性时……开发人员哭着睡在世界的某个地方。
