Respostas:
<span>You have {{products|length}} products</span>
Você também pode usar esta sintaxe em expressões como
{% if products|length > 1 %}
Os filtros internos do jinja2 estão documentados aqui ; e, especificamente, como você já encontrou length
(e seu sinônimo count
) está documentado para:
Retorne o número de itens de uma sequência ou mapeamento.
Então, novamente, como você encontrou {{products|count}}
(ou equivalente {{products|length}}
) em seu modelo, você fornecerá o "número de produtos" ("comprimento da lista")
{% set item_count = items | length %}
contanto que items
é uma lista, dict, etc.
O comentário de Alex parece bom, mas eu ainda estava confuso com o uso do alcance. O seguinte funcionou para mim enquanto trabalhava em uma condição for usando comprimento dentro do alcance.
{% 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 %}
Ocorreu um problema com o comprimento de None, que leva ao erro interno do servidor: TypeError: o objeto do tipo 'NoneType' não possui len ()
Minha solução alternativa é apenas exibir 0 se o objeto for None e calcular o comprimento de outros tipos, como lista no meu caso:
{{'0' if linked_contacts == None else linked_contacts|length}}