在 Django Html 模板中循环范围

问题描述 投票:0回答:2

在我的 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 %}
python html django django-templates
2个回答
0
投票

给出您的

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 %}

0
投票

尝试:

  1. 添加核心过滤器

    @register.filter(name="template_range") def template_range(值): 返回 int(值)*"-"

  2. 在模板中

    {% for q in quan %} {% for i in q|template_range %} {{ 我 }} {% 结束 %} {% % 结束}

© www.soinside.com 2019 - 2024. All rights reserved.