检查Django模板中数组中的元素数

mik*_*ket 36 django

我想看看我的Django模板中数组中的元素数是否大于1.我可以使用以下语法来做到这一点吗?

{% if {{myarr|length}} > 1 %}
<!-- printing some html here -->
{% endif %}
Run Code Online (Sandbox Code Playgroud)

谢谢

Rob*_*rne 72

从Django 1.2开始; 如果支持布尔运算和过滤器,那么你可以这样写:

{% if myarr|length > 1 %}
<!-- printing some html here -->
{% endif %}
Run Code Online (Sandbox Code Playgroud)

有关if with filters的信息,请参阅Django项目文档.

  • 一件奇怪的事情:在 1.6 中如果你使用像 `myarr | 这样的空格 length`,django 会打印它,但是如果你尝试比较,你会得到一个错误。为了进行比较,我必须删除空格。 (2认同)

小智 6

没有.但你可以使用django-annoying,并且{% if myarr|length > 1 %}可以正常工作.


Ned*_*der 2

这是 Django 模板语言无法提供的功能之一。您有几个选择:

  1. 在视图中计算该值,并将其传递到模板的新变量中。

  2. 安装模板标签的附加库,让您获得更丰富的比较,例如:http ://www.djangosnippets.org/snippets/1350/

  3. 如果您认为会经常遇到模板语言限制,请完全使用不同的模板语言。