2009-05-14 19 views
5

Ho una pagina Web in cui sono in loop e utilizzo del ciclo all'interno del ciclo.Uso del ciclo in django

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

Ora, questo significa che ogni volta che all'interno del ciclo, primo tag div ottiene white.But, quello che voglio è quello di alternare tra il bianco e il nero cioè iniziare con il bianco, quindi la prossima volta quando all'interno del ciclo avviare il primo div tag con il nero. È possibile ottenere qui?

risposta

0

Qualcosa di simile potrebbe funzionare (non testata):

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

C'è un accettare bug aperto su questo problema. Puoi provare la modifica proposta per vedere se funziona per te.

Se non si vuole provare, o non funziona, dare a questo un colpo:

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

Da quanto ho capito, il ciclo sarebbe iniziare a bianco, e poi un ciclo tra i valori di ciascuno tempo all'interno del ciclo (il che significa che non si riavvierà in bianco ogni volta).