2009-08-02 93 views
13

我在我的形式很多領域我試圖不同的CSS應用到鄰居形成像Django的模板forloop.counter問題

<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循環的方式。櫃檯?

非常感謝!

回答

24

cycle tag是專爲這種類型的問題:

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

我賈勒特同意cycle是這裏最好的,但實際上回答的問題,​​操作可以通過使用divisibleby過濾器進行復制。

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

另一件事要記住的是,由於這是一個前端的問題 - 造型是你想要的效果是什麼 - 你可以解決它的前端。這個A List Apart article的底部提供了一個很好的例子。當然,如果你已經有了Django代碼,現在就沒有意義了。

+0

是的,但模板肯定是Django的前端部分(MVC中的「V」)。 – DrBloodmoney 2009-08-03 16:54:07