在jinja2模板中获取列表的长度

时间:2009-09-23 10:44:54

标签: python jinja2

如何在jinja2模板中获取列表中的元素数量?

例如,在Python中:

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

和jinja2

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

3 个答案:

答案 0 :(得分:435)

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

您也可以在

等表达式中使用此语法
{% if products|length > 1 %}

jinja2的内置过滤器记录在案here;具体而言,正如您已经发现的那样,length(及其同义词count)记录在:

  

返回序列或映射的项目数。

因此,正如您所发现的那样,您的模板中{{products|count}}(或等效{{products|length}})将提供“产品数量”(“列表长度”)

答案 1 :(得分:6)

亚历克斯的评论看起来不错,但我仍然对使用范围感到困惑。 以下内容适用于使用范围内长度的条件。

{% 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 %}

答案 2 :(得分:0)

我遇到了长度为None的问题,这导致内部服务器错误:TypeError:类型为'NoneType'的对象没有len()

如果对象为None,我的解决方法只是显示0,然后计算其他类型的长度,例如我的列表:

{{'0' if linked_contacts == None else linked_contacts|length}}