在Django中获取多个checkbox的值

我有一张桌子,里面显示不同客户的不同账单:

在这里输入图像说明

我在我的views.py中有这样的代码:

@login_required def descarga(request,id_factura): selected_values = request.POST.getlist('factura') if request.method == 'POST': form = Factura.objects.filter(id__in=selected_values) if form: (...Styling of the Excell file...) # write the header header = ['Cliente', 'Fecha de Factura', 'Tipo de Factura', 'Numero de Factura', 'Descripcion', 'Subtotal', 'IVA', 'Precio'] for hcol, hcol_data in enumerate(header): # [(0,'Header 1'), (1, 'Header 2'), (2,'Header 3'), (3,'Header 4')] sheet.write(0, hcol, hcol_data, font_size_style) for facturas in form: data = { "Cliente": form.nombre_cliente, "Fecha de Factura":form.fecha_factura, "Tipo de Factura": form.tipo_Factura, "Numero de Factura": form.numero_De_Factura, "Descripcion": form.descripcion, "Subtotal": form.importe_sin_iva, "IVA": form.iva, "Precio": form.importe_Total, } for column, key in enumerate(header, start=1): sheet.write(1, column, str(data[key]), body_style) response = HttpResponse(mimetype='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment; filename=report.xls' response = render_to_response(context_instance = RequestContext(request, locals()), mimetype='application/vnd.ms-excel') return response 

这个function将ONE账单的信息转储到Excel文件中。 这个函数附加到一个不在表格的同一个模板中的button,它在显示他账单信息的模板中(通过点击“Ver”,另一个模板以很好的格式显示你的信息)

所以现在我所要做的就是将button放在表格所在的同一页面,并只导出在checkbox中选中的那个button。

问题是:我如何告诉视图只导出被检查的视图? 和这个function是一样的工作方式,因为它在一个工作,而我只显示一个账单的信息。

这是我在我的模板中的代码:

 {% for factura in facturas %} <tr> <td><i class="fa fa-file"> <a href="{% url 'ver_Factura' factura.pk %}">Ver</a></i> <div class="checkbox"> <label> <input type="checkbox"> </label> </div> </td> <td>{{ factura.nombre_cliente }}</td> <td>{{factura.numero_De_Factura }}</td> <td>{{factura.fecha_factura }}</td> </tr> {% endfor %} 

任何一点小小的帮助都会真正的感激 谢谢

在HTML中,每个表单字段都需要一个name属性才能提交到后端。 但是对于checkbox,您可以给它们所有相同的名称 – 但不同的值 – 以便它们将作为列表提交。 所以你可以在你的模板中做到这一点:

 <input type="checkbox" name="factura" value="{{ faktura.pk }}"> 

并认为:

 selected_values = request.POST.getlist('factura') 

这将给你一个选定的Factura ID列表。