Djangoのテンプレートのforループにて奇数/偶数を判定する方法

Djangoが用意しているテンプレートの「for」タグの中で、現在のループが奇数か偶数かを判定するには、元々用意されている「divisibleby」フィルタと「forloop.counter0」変数を使えばできます。

「forloop.counter0」とは、現在何ループ目かを表わす変数(0からカウント)です。また、「divisibleby」とは、引数に与えた変数で割り切れるかどうかを判定するフィルタです。

例)

{% if var|divisibleby:"2" %}
The var is divisible by 2.
{% else %}
The var is not divisible by 2.
{% endif %}

この「forloop.counter0」と「divisibleby」を使用して、「for」タグの中で現在のループが奇数か偶数かを判定するには、以下のようにすればできます。

例)

{% for  hoge in hoges %}
  {% if forloop.counter0|divisibleby:"2" %}
  The forloop.counter0 is an even number.
  {% else %}
  The forloop.counter0 is an odd number.
  {% endif %}
{% endfor %}

Django | Built-in template tags and filters | Django documentation

この記事が役に立った場合、シェアしていただけると励みになります!!