2012-09-11 19 views
5

Tengo el siguiente bucle en mi plantilla Jinja2Jinja2 artículos X por primera vez en bucle para ... si

{% for item in list if item.author == 'bob' %} 

estoy tratando de conseguir los primeros 5 elementos que tienen la sacudida como autor.

He intentado hacer

{% for item in list if item.author == 'bob' and loop.index <= 5 %} 

pero devuelve un error no definido.

¿Cómo hacer que funcione?

+5

Esto suena como el tipo de cosas que generalmente quiere hacer en su código python, no la temperatura tarde. – geoffspear

Respuesta

9

EDIT:

Simplemente puede anidar las expresiones ?, es decir

{% for item in list if item.author == 'bob' %} 
    {% if loop.index <= 5 %} 
     do something 
    {% endif %} 
{% endfor %} 
+1

Esto obtendría los primeros 5 elementos de la matriz, no los que tienen autor bob .. Si tengo una matriz con 10 elementos y bob escribió los últimos 5, esto no devolverá nada – applechief

+0

buen punto ... hmm –

+1

no muy elegante pero funciona –

3

para saltar los primeros elementos x que pueda

{% for category in categories[x:] %} 

con todas las expresiones que puede utilizar para la listas normales

Cuestiones relacionadas