MrD*_*ase 127 django django-templates
我的Django模板中有一个列表.我想只在列表大小大于零时才做某事.我怎么检查这个?
我试过myList | length和myList | length_is但是没有成功.我到处搜索过,没看到任何例子.
Ale*_*lli 243
请参阅https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if:使用,重现他们的示例:
{% if athlete_list %}
Number of athletes: {{ athlete_list|length }}
{% else %}
No athletes.
{% endif %}
Run Code Online (Sandbox Code Playgroud)
Dav*_*ith 90
如果您使用的是最近的Django,则更改列表9530引入了一个{%empty%}块,允许您编写
{% for athlete in athlete_list %}
...
{% empty %}
No athletes
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
当您想要做的事情涉及迭代非空列表时很有用.
mip*_*adi 20
如果列表False
没有元素,则认为是列表,因此您可以执行以下操作:
{% if mylist %}
<p>I have a list!</p>
{% else %}
<p>I don't have a list!</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
Nil*_*are 12
如果您尝试了myList | length和myList | length_is并且没有获得所需的结果,那么您应该使用 myList.count
这有效:
{% if myList|length %}
Do something!
{% endif %}
Run Code Online (Sandbox Code Playgroud)
为什么这里有这么多答案以及为什么有这么多混乱是因为这并不总是有效。我认为模板过滤器一度不能用于语句的参数if
,这是后来添加的。现在也可以执行诸如 之类的操作{% if myList|length >= 3 %}
。过滤器应该做相当于len(myList)
任何类型的对象,它可以处理也可以处理|length
过滤器。
小智 7
您可以尝试:
{% if theList.object_list.count > 0 %}
blah, blah...
{% else %}
blah, blah....
{% endif %}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
113105 次 |
最近记录: |