Jinja2で多重ループの外側ループのインデックスを取得する

Jinja2

備忘録的な小ネタ。StackOverFlowからの情報です。Pythonのテンプレートエンジン「Jinja2」で多重forループのインデックスを取得する方法についてです。
stackoverflow.com

Jinja2でインデックスを取得する

Jinja2では、pythonのenumerate関数に相当するものが無いので、ループのインデックスを取得する際はloop.index0(インデックスを1から始めたいときはloop.index)というオブジェクトを使います。

{% for i in list %}
    {{ loop.index0 }}
{% endfor %}

多重ループでインデックスを取得する

では、多重ループがあって、その内側のループの中で外側のループのインデックスを扱い時はどうすれば良いでしょうか?その場合は、setを使うと上手くいくそうです。

{% for i in list_a %}
    {% set outer_loop = loop %}
    {% for j in list_b %}
        {{ outer_loop.index0 }}
    {% endfor %}
{% endfor %}

なるほどねー。

You May Also Like

About the Author: korintje

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です