django modello forloop.contatore domanda

ho molti campi nel modulo stavo cercando di applicare diversi css per il prossimo campi di moduli come

<li class='thiscolor' >
   <field>
</li>

<li class='thatcolor' >
   <field>
</li>

se c’è un modo come

{% for field in form %}
    **{% if forloop.counter%2 == 0 %}**
   <li class='thiscolor'>
    {% else%}
   <li class='thatcolor'>     
    {%endif}
     {{field}}
    </li>
{% endfor %}

per forloop.contatore ?

Grazie mille!

InformationsquelleAutor icn | 2009-08-02

 

3 Replies
  1. 24

    Il ciclo tag è stato progettato per questo tipo di problema:

    {% for field in form %}
        <li class="{% cycle 'thiscolor' 'thatcolor' %}">{{ field }}</li>
    {% endfor %}
  2. 21

    Sono d’accordo con Jarret che cycle è meglio qui, ma effettivamente di rispondere alla domanda, l’ %2==0 operazione può essere replicata utilizzando divisibleby filtro.

    {% if forloop.counter|divisibleby:"2" %}
  3. 1

    Un’altra cosa da tenere a mente è che dal momento che questo è un front-end problema – lo stile è quello che stai cercando di effetto – si può risolvere sul front-end. C’è un buon esempio verso la parte inferiore di questo A List Apart articolo. Naturalmente, se hai già lavorando Django codice non c’è alcun senso nel fare questo ora.

    • Sì, ma i modelli sono certamente il front-end porzione di Django (la “V” in MVC).
    • A destra, invece, è uno stile problema che può essere alternativamente trattati lato client (CSS).

Lascia un commento