2013-07-19 16 views
10

mam wysłać zmienną z moich poglądów na szablonach, które składają się z danymi z bazyliczba liczba wierszy w szablonach kolby

to co używam w moim szablonu

{% for i in data %}    
    <tr> 
     <td>{{i.id}}</td> 
     <td>{{i.first_name}}</td> 
     <td>{{i.last_name}}</td> 
     <td>{{i.email}}</td> 
    </tr> 
{% endfor %} 

istnieje siedem wpisy w tej pętli, muszę pokazać dzierżawy Ilość sugerują w jaki sposób można to zrobić

Odpowiedz

22

Wewnątrz pętli można uzyskać dostęp do specjalnej zmiennej o nazwie loop i można zobaczyć liczbę elementów z {{ loop.length }}

To wszystko można zrobić ze zmiennej pomocniczej pętli:

  • loop.index bieżącej iteracji pętli. (1 indeksowane)

  • loop.index0 Obecna iteracja pętli. (0 indeksowane)

  • loop.revindex liczba iteracji z końcem pętli (1 indeksowanego)

  • loop.revindex0 liczba iteracji z końcem pętli (0 indeksowane)

  • pętla.first Prawda, jeśli pierwsza iteracja.

  • loop.last Prawda jeśli ostatnia iteracja.

  • loop.length Liczba pozycji w sekwencji.

  • loop.cycle Funkcja pomocnika do przełączania między listą sekwencji. Zobacz wyjaśnienie poniżej.

  • loop.depth Wskazuje, jak głęboko w głębi pętli rekurencyjnej jest obecnie renderowanie. Rozpoczyna się na poziomie 1

  • loop.depth0 Wskazuje, jak głęboko w głębi pętli rekurencyjnej jest obecnie renderowanie.Zaczyna się na poziomie 0

EDIT:

Aby zobaczyć ilość elementów zewnętrznych de pętli można wygenerować kolejną zmienną z widoku jak count_data = len(data) lub można użyć length filtr:

Data count is {{ data|length }}: 
{% for i in data %} 
    <tr> 
     <td>{{i.id}}</td> 
     <td>{{i.first_name}}</td> 
     <td>{{i.last_name}}</td> 
     <td>{{i.email}}</td> 
    </tr> 
{% endfor %} 
+0

ale teraz powraca długości pętli siedmiokrotnie jak 7777777 –

+0

I rozumiem, zaktualizowałem odpowiedź –

+0

Przykro mi to mówić, ale to nie działa –

1

{{danych | długość}}

to działa idealnie nie musimy korzystać z tego w pętli po prostu użyć dowolnego gdzie w szablonie nawet my nie trzeba wysłać kolejną zmienną z widokiem