【发布时间】:2010-11-30 17:12:58
【问题描述】:
如何获取jinja2模板列表中的元素个数?
例如,在 Python 中:
print(template.render(products=[???]))
在 jinja2 中
<span>You have {{what goes here?}} products</span>
【问题讨论】:
如何获取jinja2模板列表中的元素个数?
例如,在 Python 中:
print(template.render(products=[???]))
在 jinja2 中
<span>You have {{what goes here?}} products</span>
【问题讨论】:
【讨论】:
{% set item_count = items | length %} 只要items 是一个列表、字典等。
{{ form.select_field(size=5 if form.select_field.choices|count > 5 else form.select_field.choices|count) }}这样的内联语法
Alex 的评论看起来不错,但我仍然对使用范围感到困惑。 在使用范围内的长度处理 for 条件时,以下内容对我有用。
{% 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 %}
【讨论】:
{% for user in nums['list_users_response']['list_users_result']['users'] %} <li>{{ user['user_name'] }} </li> {% endfor %}
我遇到了长度为 None 的问题,这导致内部服务器错误:TypeError: object of type 'NoneType' has no len()
如果 object 为 None,我的解决方法只是显示 0 并计算其他类型的长度,比如我的例子中的 list:
{{'0' if linked_contacts == None else linked_contacts|length}}
【讨论】:
如果使用带有数组的 for 循环,则可以使用以下内容
{% for i in range(array|length) %}
array[i]
{% endfor %}
【讨论】: