【问题标题】:django template forloop.counter questiondjango 模板 forloop.counter 问题
【发布时间】: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 ?

非常感谢!

【问题讨论】:

    标签: css django forms templates


    【解决方案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) 交替处理。
        猜你喜欢
        • 2019-04-16
        • 2019-02-26
        • 2014-07-23
        • 1970-01-01
        • 2022-08-07
        • 1970-01-01
        • 2012-07-04
        • 1970-01-01
        • 2012-01-26
        相关资源
        最近更新 更多