我正在使用以下模板代码来尝试生成格式为“ a,b,c和d”的列表:
{% for item in list %}
{% if not forloop.first %}
{% if not forloop.last %}
,
{% endif %}
{% endif %}
{% if forloop.last %}
and
{% endif %}
{{ item }}
{% endfor %}
我得到的实际输出是'a,b,c和d'(注意逗号前的空格)。
怎么回事,如何解决?
最佳答案
好的,经过几次尝试,我认为我已经找到了解决方案,虽然有点冗长,但是可以满足您的要求-无需多余的空格-
{% for item in list %}
{% if forloop.revcounter > 2 %}
{{ item }},
{% else %}
{% if forloop.revcounter == 2 %}
{{ item }} and
{% else %}
{{ item }}
{% endif %}
{% endif %}
{% endfor %}
forloop.revcounter
从循环的末尾开始递减计数,因此您将'and'添加到倒数第二个项目,而使最后一个没有任何内容。关于python - django:模板中字符串的神秘填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14881969/