2012-03-07 10 views
13

me permite hacerbucle sobre subconjunto en Jinja Jinja

{% for item in all_items %} 
    {{ item }} 
{% endfor %} 

pero me gustaría ser capaz sólo de dar los primeros n artículos; en Python que sería

for item in all_items[:n]: 

¿Hay alguna manera elegante de hacer esto en Jinja, excepto

{% for item in all_items %} 
    {% if loop.index <= n %} 
     {{ item }} 
    {% endif %} 
{% endfor %} 

Respuesta

20

Puede utilizar la sintaxis normal de la rebanada pitón.

>>> import jinja2 
>>> t = jinja2.Template("{% for i in items[:3] %}{{ i }}\n{% endfor %}") 
>>> items = range(10) 
>>> print(t.render(items=items)) 
0 
1 
2 
+2

Como a menudo en la vida, a veces no vemos lo más obvio. Gracias :) –

+0

@miku, ¿cómo obtener los últimos 3 artículos? – Syed

+0

@miku, sin preocupaciones, lo tengo aquí [-3:] http://stackoverflow.com/a/646654/1292050 – Syed

Cuestiones relacionadas