2011-11-13 41 views
9

estoy aprendiendo sistema de plantillas de Django y tratando de hacer algo relativamente trivial:Operador/función equivalente módulo/módulo en plantillas django?

<h2>State</h2> 
<ul class="states"> 
{% for state in states %} 
    <li class="state_elements" ><a href="/{{ state.name }}/"> {{ state.name }}</a></li> 
    {% if forloop.counter \% 3 == 0 %} 
    <br style="clear: both"/> 
{% endif %} 
{% endfor %} 
</ul> 

me sale un error de sintaxis, porque es un símbolo% reservado para el lenguaje de plantillas. Esto es desafortunado.

ya he encontrado una solución parcial con

{% cycle "" "" "" '<br style="clear: both"/>' %} 

pero me parece maldita impar. ¿Hay una mejor manera?

Respuesta

26

divisibleby

Devuelve VERDADERO si el valor es divisible por el argumento.

Por ejemplo:

{{ value|divisibleby:"3" }} 

django template doc

+0

Así que sólo comprobación de validez, podría hacerlo como algo parecido {% for.counter | divisibleby: "3" %} {% endif
%} – David

+8

{% if forloop.counter | divisibleby: "3"%} – iMom0