Получить длину списка в шаблоне jinja2


Как получить количество элементов в списке шаблонов jinja2?

например, в Python:

print(template.render(products=[???]))

и в jinja2

<span>You have {{what goes here?}} products</span>
2 213

2 ответа:

<span>You have {{products|length}} products</span>

вы также можете использовать этот синтаксис в выражениях типа

{% if products|length > 1 %}

встроенные фильтры jinja2 документированы здесь; и в частности, как вы уже нашли,length (и его синоним count) доказано, что:

возвращает количество элементов последовательности или сопоставления.

Итак, опять как вы нашли,{{products|count}} (или, что эквивалентно {{products|length}}) в вашем шаблоне будет указано "количество товаров" ("длина списка")

комментарий Алекса выглядит хорошо, но я все еще был смущен использованием диапазона. Следующие работал для меня во время работы над состояния, используя длину в пределах диапазона.

{% for i in range(0,(nums['list_users_response']['list_users_result']['users'])| length) %}
<li>    {{ nums['list_users_response']['list_users_result']['users'][i]['user_name'] }} </li>
{% endfor %}