{%cycle%}解决嵌套for循环问题?

时间:2010-02-12 15:55:34

标签: django django-templates

我在Django {% cycle %}模板标签中遇到了一个有趣的“疏忽”。这被列为a bug,但我想知道是否有解决方法吗?

{% 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 个答案:

答案 0 :(得分:11)

我在模板中发现了同样的问题。

您可以使用以下解决方法:

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

答案 1 :(得分:1)

我使用“include”作为内循环内容

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