在django中使用循环

时间:2009-05-14 06:33:34

标签: python django django-templates

我有一个网页,我正在循环,并在循环中使用循环。

{% for o in something %}
{% for c in o %}
 <div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}

现在,这意味着每次循环内部,第一个div标签变为白色。但是,我想要的是在白色和黑色之间交替,即以白色开始,然后下次在循环内部开始第一个带有黑色的div标签。有可能在这里实现吗?

2 个答案:

答案 0 :(得分:4)

对此问题有一个接受bug。您可能需要尝试建议的更改以查看它是否适合您。

如果您不想尝试,或者它不起作用,请试一试:

{% cycle 'white' 'black' as divcolors %}
{% for o in something %}
    {% for c in o %}
        <div class="{% cycle divcolors %}"></div>
    {% endfor %}
{% endfor %}

据我了解,循环将从白色开始,然后每次循环遍历循环中的值(意味着每次都不会以白色重新开始)。

答案 1 :(得分:0)

这样的事可能有用(未经测试):

{% for o in something %}
 {% for c in o %}
  {% ifchanged forloop.parent.counter %}
   <div class="{% cycle 'white' 'black' %}"></div>
  {% else %}
   <div class="{% cycle 'black' 'white' %}"></div>
  {% endifchanged %}
 {% endfor %}
{% endfor %}