[英]How do I submit multiple forms with a single submit button in django?
我设法使用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 %}
阅读更多关于模型表单集的信息 。 您不需要单独的form
标签,这是使用form
的全部重点。
<form method="post" action="">
{{ factura_formset.management_form }}
<table>
{% for form in factura_formset %}
{{ form }}
{% endfor %}
</table>
</form>
此外,每次在页面上多次使用id
属性时,开发人员都会哭泣自己睡在世界的某个地方。
我怀疑您将需要使用Ajax进行操作-否则,一旦提交一种表单,您将无法采用其他方式。
有一些jQuery表单库应该使它相对简单。 例如, http://malsup.com/jquery/form/ 。
它看起来像:
$('#button-id').click(function() {
$('.blueForms').ajaxSubmit();
});
当然,您将需要处理错误并等待所有表单提交。
如果您尝试创建许多“相同”形式的实例(也就是说,它们看起来都相同),就好像它是属于单个主元素的多个子实例之一一样,则实际上不需要创建一个每个表单集的表单标签。
如果我没记错的话,那么您将尝试为单个avaluo对象编辑许多facturas 。 我对吗? 该表示形式将是具有许多内联表单集的单个“求值”表单,每个“事实”都一个。
检出内联表单集工厂,而不是modelformset工厂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.