如何在Jinja中迭代一个列表的列表

89

我有一个像这样的列表:

    [[elem0, elem1, elem2], [elem3, elem4, elem5], [elem6, elem7, elem8], ...]

我编写了以下模板文件:

    {% for result in results %}
        <tr>
            <td>result[0]</td>
            <td>result[1]</td>
            <td>result[2]</td>
        </tr>
    {% endfor %}

但这并没有起作用,我能想到的是使用嵌套for循环。是否有其他方法可以在jinja中访问列表中的元素?

2个回答

139

你仍然需要在花括号内输出循环变量。

{% for result in results %}
    <tr>
        <td>{{ result[0] }}</td>
        <td>{{ result[1] }}</td>
        <td>{{ result[2] }}</td>
    </tr>
{% endfor %}

还要考虑嵌套的for循环:

{% for result in results %}
    <tr>
    {% for elem in result %}
        <td>{{elem}}</td>
    {% endfor %}
    </tr>
{% endfor %}

我们可以在结果上使用range或len吗? - Aditya Sawant

0
你可以使用filters和内置的filters.length来获取列表的长度,并使用range()函数。
{% for index in range(results | length) %}
    <tr>
    {% for element in results[index] %}
        <td>{{element}}</td>
    {% endfor %}
    </tr>
{% endfor %}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接