2010-02-12 12 views
7

Ich stieß auf eine interessante "Aufsicht" in der Django {% cycle %} Template-Tag. Dies wurde als a bug aufgeführt, aber ich frage mich, ob es einen Workaround dafür gibt?{% Zyklus%} arbeiten für verschachtelte For-Schleifen?

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

Dies ergibt:

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

Es ergeben soll:

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

Antwort

10

ich das gleiche Problem in meinen Vorlagen bemerkt habe.

Sie können eine Abhilfe wie folgt verwendet werden:

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

I „umfassen“ für innere Schleife Inhalt

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

FYI verwenden, setzen eine for-Schleife innerhalb einer umfassen wirklich Leistung töten können, wenn Sie sind nicht vorsichtig. – speedplane