Jak uzyskać liczbę elementów na liście w szablonie jinja2?
Na przykład w Pythonie:
print(template.render(products=[???]))
i w jinja2
<span>You have {{what goes here?}} products</span>
<span>You have {{products|length}} products</span>
Możesz również użyć tej składni w wyrażeniach takich jak
{% if products|length > 1 %}
Wbudowane filtry jinja2 są udokumentowane tutaj ; a konkretnie, jak już odkryłeś, length
(i jego synonim count
) jest udokumentowany:
Zwraca liczbę elementów sekwencji lub mapowania.
Tak więc, jak już znalazłeś {{products|count}}
(lub równoważnie {{products|length}}
) w swoim szablonie podasz „liczbę produktów” („długość listy”)
{% set item_count = items | length %}
tak długo jakitems
jest lista,Komentarz Alexa wygląda dobrze, ale nadal byłem mylony z używaniem zasięgu. Poniższe działało dla mnie podczas pracy nad warunkiem przy użyciu długości w zakresie.
źródło
Wystąpił problem z długością None, który prowadzi do wewnętrznego błędu serwera: TypeError: obiekt typu „NoneType” nie ma len ()
Moje obejście wyświetla tylko 0, jeśli obiektem jest Brak i obliczam długość innych typów, takich jak lista w moim przypadku:
źródło