我的模板中有以下代码:
{% for f in friendslist %}
{% if forloop.first %}
// display something
{% endif %}
// display stuff
{% if forloop.last %}
// display something
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
当friends列表中有多个项目时,它按预期工作.但是如果只有一个项目,则不显示forloop.last条件内的内容.
我想这是因为在这种情况下循环是第一个,但我的意思是它也是最后一个?那么为什么在第一个和最后一个条件显示中都没有内容?
小智 32
在我的代码中,如果friendslist中只有一个元素,它们都会执行.这是一个你可以在shell中运行的测试,也许你可以弄清楚哪些不起作用:
$ ./manage.py shell
>>> from django import template
>>> t = template.Template("""{% for f in friendslist %}
{% if forloop.first %}
First of the loop
{% endif %}
{{ f }}
{% if forloop.last %}
Last of the loop
{% endif %}
{% endfor %}""")
>>> c = template.Context({'friendslist' : ['one element',]})
>>> t.render(c)
First of the loop
one element
Last of the loop
Run Code Online (Sandbox Code Playgroud)
难道你不能只使用像{%if forloop.last或friendlist.count == 1%}的"或"标签
{% for f in friendslist %}
{% if forloop.first %}
// display something
{% endif %}
// display stuff
{% if forloop.last or friendlist.count == 1 %}
// display something
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38525 次 |
最近记录: |