django模板forloop.counter问题

时间:2009-08-02 19:40:56

标签: css django forms templates

我的表单中有很多字段我试图将不同的css应用于邻居表单字段,如

<li class='thiscolor' >
   <field>
</li>

<li class='thatcolor' >
   <field>
</li>

如果有像

这样的方式
{% for field in form %}
    **{% if forloop.counter%2 == 0 %}**
   <li class='thiscolor'>
    {% else%}
   <li class='thatcolor'>     
    {%endif}
     {{field}}
    </li>
{% endfor %}

for forloop.counter?

非常感谢!

3 个答案:

答案 0 :(得分:24)

cycle tag专为此类问题而设计:

{% for field in form %}
    <li class="{% cycle 'thiscolor' 'thatcolor' %}">{{ field }}</li>
{% endfor %}

答案 1 :(得分:21)

我同意Jarret cycle在这里最好,但要真正回答这个问题,可以使用%2==0过滤器复制divisibleby操作。

{% if forloop.counter|divisibleby:"2" %}

答案 2 :(得分:1)

要记住的另一件事是,因为这是一个前端问题 - 样式是你想要影响的 - 你可以在前端解决它。在A List Apart article的底部提供了一个很好的例子。当然,如果你已经使用了Django代码,那么现在就没有意义了。