在我的 django 模板中,我想按数量复制一行,如下所示:
例如重复材料请求 67 14 次、34 15 次等等
为此,我已在如下列表中检索了数量:
d_docket = AllotmentDocket.objects.filter(parent_company = client_pk.pk, transaction_date__range =[start, end]).order_by('-transaction_date')
quan = list(d_docket.values_list('product1_quantity', flat=True))
给出:
[14, 15, 15, 15, 15, 20, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 15, 13, 6, 15, 15, 10, 15, 15, 15, 7, 8]
但是如何在 django 模板中循环遍历
quan
的每个元素的范围?
当前模板:
{% for i in query %}
<tr>
<td class="align-middle">{{ i.sales_order.owner }}</td>
<td class="align-middle">{{ i.sales_order.pk }}</td>
<td class="align-middle">{{ i.sales_order.flow }}</td>
<td class="align-middle">{{ i.sales_order.kit }}</td>
</tr>
{% endfor %}
给出您的
query
和 quan
作为上下文。然后,在当前 for 循环的每次迭代中使用 quan[forloop.counter0]
,如下所示:
{% for i in query %}
{% with index=forloop.counter0 %}
{% with ''|center:quan.index as range %}
{% for _ in range %}
<tr>
<td class="align-middle">{{ i.sales_order.owner }}</td>
<td class="align-middle">{{ i.sales_order.pk }}</td>
<td class="align-middle">{{ i.sales_order.flow }}</td>
<td class="align-middle">{{ i.sales_order.kit }}</td>
</tr>
{% endfor %}
{% endwith %}
{% endwith %}
{% endfor %}
尝试:
添加核心过滤器
@register.filter(name="template_range") def template_range(值): 返回 int(值)*"-"
在模板中
{% for q in quan %} {% for i in q|template_range %} {{ 我 }} {% 结束 %} {% % 结束}