Использование цикла в Джанго - PullRequest
5 голосов
/ 14 мая 2009

У меня есть веб-страница, где я зацикливаюсь, и использую цикл внутри цикла.

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

Теперь, это означает, что каждый раз внутри цикла, первый тег div становится белым. Но я хочу чередовать белый и черный, т.е. начинать с белого, а затем в следующий раз, когда внутри цикла, запустить первый тег div с черным. Можно ли здесь добиться?

Ответы [ 2 ]

4 голосов
/ 22 сентября 2010

Существует сообщение об ошибке об этой проблеме. Вы можете попробовать предлагаемое изменение, чтобы увидеть, работает ли оно для вас.

Если вы не хотите его пробовать или он не работает, сделайте это:

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

Насколько я понимаю, цикл будет начинаться с белого, а затем циклически перебирать значения каждый раз внутри цикла (т. Е. Вы не будете перезапускать белый каждый раз).

0 голосов
/ 14 мая 2009

Примерно так может работать (не проверено):

{% 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 %}
...