如何检查循环计数? (无论是偶数还是奇数)

时间:2014-01-22 15:18:46

标签: django

{% for p in posts %}
   <div id="even">{{ p.title }}</div>
   <div id="odd">{{ p.title }}</div>
{% endfor %}

我需要创建这样的东西:

{% for p in posts %}
   {% if forloop_count is even %}
       <div id="even">{{ p.title }}</div>
   {% else %}
       <div id="odd">{{ p.title }}</div>
   {% endif %}
{% endfor %}

如何检查循环计数? (无论是偶数还是奇数)

2 个答案:

答案 0 :(得分:3)

这是您真正的基本要求,还是您只是想在两个div类之间循环?他们必须是奇数/偶数,还是只是交替?

{% for o in some_list %}
    <tr class="{% cycle 'row1' 'row2' %}">
        ...
    </tr>
{% endfor %}

参考:https://docs.djangoproject.com/en/dev/ref/templates/builtins/

在你的情况下,它将是:

{% for p in posts %}
    <div id="{% cycle 'even' 'odd' %}">{{ p.title }}</div>
{% endif %}

答案 1 :(得分:2)

使用divisableby

{% for p in posts %}
   {% if forloop.counter|divisibleby:"2" %} {# is even #}
       <div id="even">{{ p.title }}</div>
   {% else %}
       <div id="odd">{{ p.title }}</div>
   {% endif %}
{% endfor %}

或者仅仅针对ID使用cycle,例如

{% cycle 'odd' 'even' %}