django 模板 forloop.counter 问题
Posted
技术标签:
【中文标题】django 模板 forloop.counter 问题【英文标题】:django template forloop.counter question 【发布时间】:2010-11-16 05:16:58 【问题描述】:我的表单中有很多字段我试图将不同的 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 %
forloop.counter ?
非常感谢!
【问题讨论】:
【参考方案1】:cycle tag 专为此类问题设计:
% for field in form %
<li class="% cycle 'thiscolor' 'thatcolor' %"> field </li>
% endfor %
【讨论】:
【参考方案2】:我同意 Jarret 的观点,cycle
在这里是最好的,但要真正回答这个问题,%2==0
操作可以通过使用 divisibleby
过滤器来复制。
% if forloop.counter|divisibleby:"2" %
【讨论】:
【参考方案3】:要记住的另一件事是,由于这是一个前端问题 - 样式是您想要实现的效果 - 您可以在前端解决它。在A List Apart article 的底部提供了一个很好的示例。当然,如果您已经有了工作的 Django 代码,那么现在这样做是没有意义的。
【讨论】:
是的,但模板肯定是 Django 的前端部分(MVC 中的“V”)。 没错,这是一个样式问题,可以在客户端 (CSS) 交替处理。以上是关于django 模板 forloop.counter 问题的主要内容,如果未能解决你的问题,请参考以下文章
Django1.5 forloop.counter 不在模板中递增