2013-07-17 26 views
17

Mam listę zagnieżdżoną. Muszę powtórzyć listę i pozostawić ją w pętli, jak pokazano poniżej.zakres w jinja2 wewnątrz pętli for

{% for alpha in list %} 
    <div id="{{ loop.index }}"> 
     <div class='sidebar-one'> 
      {% for beta in list[0][2:] %} #I want to iterate through list[0][2:] till list[n][2:] 
       <p> {{ beta[0][0] }} </p> 
      {% endfor %} 
     </div> 
    </div> 
{% endfor %} 

Próbowałem zasięgu, ale bez powodzenia.

{% for n in range(1,n) %} 
{% for line in check[{{n}}][2:] %} 
{% endfor %} 

wyrzucił błąd:

TemplateSyntaxError: expected token ':', got '}' 

Odpowiedz

42

To tak jak Python:

{% for n in range(n) %} 
    {% for line in check[n][2:] %} 
     <p> {{ beta[0][0] }} </p> 
    {% endfor %} 
{% endfor %} 
+1

ok rozumiem. moim błędem było umieszczenie tego w nawiasach klamrowych, takich jak {{n}}. Nadal zastanawiam się, dlaczego aparaty ortodontyczne nie są tutaj używane? jesteśmy w jinja2, a nie w python, prawda? –

+0

zapytanie anohter, jeśli nie chcesz dodawać odpowiedzi. jak zakończyć pierwszą pętlę, a drugą? "endfor" automatycznie podejmie bliżej pętlę? Zastanawiam się, czy jest jakiś hack na kończeniu zewnętrznej pętli, a potem wewnętrznej! –

+0

@ChandanGupta: Jinja2 to nie Python, ale jego składnia jest bardzo podobna. Jeśli chodzi o pętlę, jak by to zrobić w zwykłym Pythonie? – Blender