假设我有一个for循环,它列出了一堆用户。循环中可能有0-n个用户。我想在每个用户名之后加上逗号,除了最后一个。
所以:
<p>
{% for u in users %}
{{u.name}},
{% endfor }
</p>
我明白了:
Sam, Neil, Bob,
我想:
Sam, Neil, Bob
答案 0 :(得分:7)
我同意加入是一个很好的方法。如果你想用for来做,试试
{% for u in users %}
{{u.name}}{% if not forloop.last %},{% endif %}
{% endfor }
答案 1 :(得分:2)
Django 1.2中的for循环包含一些自动生成的变量。其中包括:
forloop.first
forloop.last
所以你可以使用if语句放置分隔符:
<p>
{% for u in users %}
{{u.name}}
{% if not forloop.last %}
,
{% endif %}
{% endfor %}
</p>
答案 2 :(得分:-1)
如果你不需要循环,并且你只有一个列表,那么'join'可能是你最好的解决方案。
但首先我们需要获取所有名称的列表,map应该帮助我们,然后加入所有结果:
{% with names = map(lambda u: u.name, users) %}
{{ names|join:", " }}
{% endwith %}