Skip to main content
 首页 » 编程设计

python之如何在 Django 中使用一个提交按钮提交多个表单

2025年05月04日25grandyang

我已经成功地使用 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 属性时……开发人员哭着睡在世界的某个地方。