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

Jinja2 でループのインデックスを取得する | 山本隆の開発日誌」より。


Gogole App Engine用フレームワーク Kay のテンプレートエンジンに使用されている Jinja2 でループのインデックスを取得する方法。

enumerate()みたいなことをJinja2でしたい。

for index, item in enumerate(items):
print '%d %s' % (index, item)

Jinja2にはループの中で使用できる「loop」という特別な変数が用意されている。

「loop.index0」を使用すると、ループのインデックスを取得することができる。

<table>
{% for item in items %}
<tr>
<td>{{ loop.index0 }}</td>
<td>{{ item }}</td>
</tr>

{% endfor %}
</table>

「loop.index」は、ループのインデックスが1から始まる。

<table>
{% for item in items %}
<tr>
<td>{{ loop.index }}</td>

<td>{{ item }}</td>
</tr>
{% endfor %}
</table>