{% cycle%} ли обходить вложенные циклы? - PullRequest
7 голосов
/ 12 февраля 2010

Я столкнулся с интересным «упущением» в теге шаблона Django {% cycle %}. Это было указано как ошибка , но мне интересно, есть ли обходной путь?

{% for r1 in range_0_2 %}
  {% for r2 in range_0_3 %}
   {{ r1 }}-{{ r2 }}-{{ cycle 'even' 'odd' }}
  {% endfor %}
{% endfor %}

Это дает:

0-0-even
0-1-odd
0-2-even
1-0-odd
1-1-even
1-2-odd

Это должно дать:

0-0-even
0-1-odd
0-2-even
1-0-even
1-1-odd
1-2-even

Ответы [ 2 ]

11 голосов
/ 12 февраля 2010

Я заметил ту же проблему в моих шаблонах.

Вы можете использовать обходной путь, подобный следующему:

{% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}
1 голос
/ 25 июня 2013

Я использую «включить» для содержимого внутреннего цикла

{% regroup employee_bypos_list by pos as by_pos %}
{% for pos_set in by_pos %}
    <h2>«{{ pos_set.grouper.address }}»</h2>
    {% with pos_set.list as employee_list %}
        {% include 'website/employee/_staff_by_post.html' %}
    {% endwith %}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...