Flask / Jinja2模板:具有多个列表位置的循环

时间:2015-07-03 09:52:59

标签: python list loops flask jinja2

[不确定主题是否有意义,但没有找到更有意义的主题。]

我创建了一个看起来像这样的模板:

{% for x in jobs %}
        <table>
            <tr>
                <td></td>
                <td>{{ x.Ecordov.oovorder }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooaname1.split('{}')[0] }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooaname2.split('{}')[0] }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooazusatz.split('{}')[0] }}</td>
            </tr>
        </table>
{% endfor %}

正如您所看到的,我在多个列表中获得了一个特定的位置,这非常有效。

我正在尝试解决的问题:这些列表最多有16个位置,我必须渲染。我当然可以将上面的<tr> </tr>块复制/粘贴16次到模板中,并编辑行位置,但我确信有更好,更自动化的方式;但是,到现在为止,我无法自己找到这个。

有人能指出我正确的方向吗?

感谢您的帮助和最好的一切!

1 个答案:

答案 0 :(得分:1)

试试这个:

{% for x in jobs %}
    {% for i in range(0, 17) %}
        <table>
            <tr>
                <td></td>
                <td>{{ x.Ecordov.oovorder }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooaname1.split('{}')[i] }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooaname2.split('{}')[i] }}</td>
            </tr>
            <tr>
                <td></td>
                <td>{{ x.ooazusatz.split('{}')[i] }}</td>
            </tr>
        </table>
    {% endfor %}
{% endfor %}

如果您不知道列表中有多少元素,则必须先找到它并将其用作 stop 参数(range()函数的第二个参数)。