2010-10-21 9 views
12

Soy nuevo en django y no puedo encontrar la manera de que esto funcione en las plantillas django. La idea es comprobar si los artículos anteriores primera letra es igual con los actuales, así:Accediendo al elemento anterior de la matriz en la plantilla django para el ciclo

{% for item in items %} 
    {% ifequal item.name[0] previous_item.name[0] %} 
     {{ item.name[0] }} 
    {% endifequal %} 
    {{ item.name }}<br /> 
{% endforeach %} 

Tal vez estoy tratando de hacer esto en el camino equivocado y alguien me puede apuntar en la dirección correcta.

+0

Voy a publicar una mini respuesta fuera del tema: si estás buscando hacer algo "anidado", deshazte de los objetos .objects y usa .tree, tendrás que instalar django-mptt para eso. He analizado esto hace un par de días cuando escribía páginas y categorías jerárquicas, por lo que me preguntaba;) Saludos. – kovshenin

Respuesta

35

Utilice la etiqueta {% ifchanged %}.

{% for item in items %} 
    {% ifchanged item.name.0 %} 
     {{ item.name.0 }} 
    {% endifchanged %} 
{% endfor %} 

Asimismo, recuerda que hay que utilizar siempre la sintaxis con punto - paréntesis no son válidos sintaxis de la plantilla.

+0

Typo al final – kovshenin

+0

@kovshenin gracias, fijo –

+0

Muchas gracias, esto hizo el trabajo a la perfección! – ronalds

Cuestiones relacionadas