django - Django从html中获取选中复选框的列表并在views.py中处理
问题描述
我在模板中有一个复选框,并希望从选中的复选框中获取价值,以便在views.py中呈现为pdf。我需要为它创建一个表格吗?不知道如何组合它。
html:
{% for order in orders %}
<div class="mb-3">
{% for item in order.items.all %}
<input type="checkbox" name="item_checkbox" value="{{ item.item.id }}" >{{ item.item.product_name }}<br>
{% endfor %}
</div>
<a href="{% url 'generate_pdf' id=order.id %}" class="btn btn-primary" target="_blank">PDF</a>
{% endfor %}
如何获取复选框值并将其传递给views.py?
在views.py中呈现pdf
def generate_to_pdf(request, id):
order = get_object_or_404(Order, id=id)
time_now = timezone.now()
template = get_template('invoice.html')
context = {
'order': order,
'time_now': time_now
}
template.render(context)
pdf = render_to_pdf('invoice.html', context)
return HttpResponse(pdf, content_type='application/pdf')
我应该在下面的函数中使用 Form post 方法从 html 中获取值吗?
上述html的views.py:
def order_admin(request):
orders = Order.objects.all().order_by('-id')
context = {
'orders': orders,
}
return render(request, 'product_admin.html', context)
解决方案
您可以从 POST 请求中获取选定复选框值的列表,例如
checked_items = request.POST.getlist("item_checkbox")
checked_items
将是已检查项目的 id 列表。
制作一个表格action="{% url 'generate_pdf' id=order.id %}"
在视图功能generate_to_pdf
def generate_to_pdf(request, id):
order = get_object_or_404(Order, id=id)
checked_items = request.POST.getlist("item_checkbox") # get checked values
time_now = timezone.now()
template = get_template('invoice.html')
# remaining code
推荐阅读
- javascript - 如果当前周数与 div 的 id 匹配,则显示 div
- awk - 有人可以向我解释这个 awk 脚本吗?
- javascript - 如何在不重新加载页面的情况下更改标签的类属性并应用样式
- python - 使用 sci-kit learn 在 LinearRegression 中查找 p 和 t 值
- python - 使用 pandas python 中的计算对值进行排序
- javascript - 带有“if”条件的 SetInterval() 将值赋给数组
- ios - 如何停止快速检测物体?
- pandas - 由于“日期”列,无法将列表插入数据框中?
- reactjs - 在同一个组件中映射和渲染两个不同的数组 - React
- python-3.x - 如何读取 ibd 文件中的字节数(subprocess.check_output 返回码)