【问题标题】:How do I get odd and even values in a Django for loop template?如何在 Django for 循环模板中获取奇数和偶数值?
【发布时间】:2011-09-28 03:43:54
【问题描述】:

我有这个代码

{% for o in some_list %}

现在我想做一些事情,如果我在一个平线上。我该怎么做?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    https://docs.djangoproject.com/en/dev/ref/templates/builtins/#divisibleby

    {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}
    

    【讨论】:

    • +1。还值得指出 cycle 标签,这取决于您究竟想在偶数行上做什么/为什么要做某事。
    • 是的。感谢您添加。与循环标签相关联的错误/意外行为;也许这已经被修复了......
    • 到目前为止,我认为还没有。当前的循环控制似乎充其量是退化的 - 我看不到任何重置循环的方法,只是一种移动它的方法。
    【解决方案2】:

    在第一级循环中:

    {% cycle 'odd' 'even' %}
    

    参考:

    【讨论】:

    【解决方案3】:
    <div class="row">
    {% for post in posts %}
          {% cycle 'odd' 'even' %}
          {% if cycle == 'odd' %}
            <div class="col-md-6">Odd posts</div>
          {% else %}
            <div class="col-md-6">Even posts</div>
          {% endif %}
        {% endfor %}
    </div>
    

    <div class="row">
    {% for post in posts %}
       {% if forloop.counter|divisibleby:2 %}
            <div class="col-md-6">Even posts</div>
          {% else %}
            <div class="col-md-6">Odd posts</div>
          {% endif %}
        {% endfor %}
    </div>
    

    【讨论】:

      【解决方案4】:
      <div class="row">
      {% for post in posts %}
         {% if loop.index is divisibleby 2 %}
              <div class="col-md-6">Even posts</div>
            {% else %}
              <div class="col-md-6">Odd posts</div>
            {% endif %}
          {% endfor %}
      </div>
      

      http://mitsuhiko.pocoo.org/jinja2docs/html/templates.html#id3

      【讨论】:

        猜你喜欢
        • 2012-02-17
        • 1970-01-01
        • 2019-11-11
        • 2012-07-25
        • 2015-03-21
        • 2010-11-09
        • 2019-05-23
        • 2012-12-10
        相关资源
        最近更新 更多