【问题标题】:How to add two for loops in a single table body in django template如何在 django 模板的单个表体中添加两个 for 循环
【发布时间】:2019-06-12 07:11:00
【问题描述】:
<thead>
<th> username </th>
<th>place</th>
</thead>

{% for i, j in user_group1, user_group2 %}
<tbody>
    {% if i %}
    <td>{{ i.username }}</td>
    <td>{{ i.place }}</td>
    {% else %}
    <td>{{ j.username }}</td>
    <td>{{ j.place }}</td>
    {% endif %}
</tbody>
{% endfor %}

我想在一个单一的表体中使用两个 for 循环。首先我需要开始第一个,然后我需要开始下一个。我该怎么做呢

【问题讨论】:

    标签: python-2.7 django-templates jinja2 django-1.11


    【解决方案1】:

    如果您使用的是 Jinja2,您可以使用 + 运算符将两个列表合二为一:

    {% for i in user_group1|list + user_group2|list %}
    <tbody>
        <td>{{ i.username }}</td>
        <td>{{ i.place }}</td>
    </tbody>
    {% endfor %}
    

    【讨论】:

    • 但它们都是不同的查询集。
    • 先将查询集转换为列表。我已经相应地更新了我的答案。
    • 它不工作。我想我使用的不是 jinja2。它给了我 TemplateSyntaxError
    • 我明白了。如果您使用的是 Django 的内置模板,那么您只需将两个查询集组合成一个可迭代对象并将该可迭代对象传递给模板。您可以将两个查询集与itertools.chain 结合起来。
    • 请帮我解决这个问题stackoverflow.com/questions/54264957/…
    猜你喜欢
    • 2013-10-26
    • 2013-06-30
    • 2014-07-12
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    相关资源
    最近更新 更多