2009-05-14 3 views
5

J'ai une page Web où je suis en boucle, et en utilisant le cycle à l'intérieur de la boucle.Utilisation de cycle dans django

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

Maintenant, cela signifie à chaque fois dans la boucle, la première balise div obtient white.But, ce que je veux est d'alterner entre le blanc et le noir-à-dire commencer par blanc, puis la prochaine fois quand dans la boucle commence le premier div tag avec le noir.Est-il possible de réaliser ici?

Répondre

0

Quelque chose comme cela pourrait fonctionner (non testé):

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

Il y a un accept bug ouvert sur cette question. Vous pouvez essayer le changement proposé pour voir si cela fonctionne pour vous.

Si vous ne voulez pas essayer, ou il ne fonctionne pas, donner à ce coup:

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

Si je comprends bien, le cycle commencerait à blanc, puis une boucle sur les valeurs chacune temps dans la boucle (ce qui signifie que vous ne redémarrerez pas au blanc à chaque fois).

Questions connexes