我想查看我的Django模板中数组中元素的数量是否大于1.我可以使用以下语法来做到这一点吗?检查Django模板中数组中元素的数量
{% if {{myarr|length}} > 1 %}
<!-- printing some html here -->
{% endif %}
谢谢
我想查看我的Django模板中数组中元素的数量是否大于1.我可以使用以下语法来做到这一点吗?检查Django模板中数组中元素的数量
{% if {{myarr|length}} > 1 %}
<!-- printing some html here -->
{% endif %}
谢谢
这是这些权力Django模板语言不给你的一个。您有几种选择:
计算这个在您的视图值,并将其传递到模板中的一个新的变量。
安装模板标签的附加库,让你得到更丰富的比较,例如:http://www.djangosnippets.org/snippets/1350/
使用不同的模板语言完全,如果你认为你会经常运行到模板语言的局限性。
没有。但你可以使用django-annoying,而{% if myarr|length > 1 %}
会正常工作。
很伤心,但是在django的'if'标签中没有这样的功能。有一个rumors that smarter if tag will be added in 1.2.,至少它在High priority
列表中。
或者您可以使用"smart_if" tag from djangosnippets.com
或者您也可以添加自己的过滤器(同样喜欢length_is过滤器) - 但它只是增加了更多无用的代码:(
from django import template
register = template.Library()
def length_gt(value, arg):
"""Returns a boolean of whether the value is greater than an argument."""
try:
return len(value) > int(arg)
except (ValueError, TypeError):
return ''
length_gt.is_safe = False
register.filter(length_gt)
欲了解更多信息请咨询django docs
也许this会有帮助吗?
检查Django中的集合大小模板是有限的。我使用的唯一解决方案是将另一个参数从视图传递到模板 - 但说实话,如果取决于您尝试实现的内容。
从Django 1.2开始; 如果,支持布尔运算和过滤器,这样你就可以写为:
{% if myarr|length > 1 %}
<!-- printing some html here -->
{% endif %}
因为如果有过滤器查看Django项目documentation。
有一件奇怪的事情:在1.6中,如果你使用'myarr |长度',django会打印它,但如果你尝试比较,你会得到一个错误。为了比较,我不得不删除空格。 – aldux 2014-10-01 21:09:57