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>

コメント

  1. Pingback: Jinja2 テンプレート構文 [Ansible] – Site-Builder.wiki

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください