从 Django 模板中 for...loop 的输出中删除/去除多余的空间

问题描述 投票:0回答:1

在我的模板中,我需要打印一些项目并在每个项目后添加“,”,除非它是最后一项。

这是我的代码:

<li>
    <strong>Category</strong>:
    {% spaceless %}
    {% for t in project.technology.all %}
    {{ t.title }}
    {% if not forloop.last %},{% endif %}
    {% endfor %}
    {% endspaceless %}
</li>

虽然它有效,但它在每个项目和“,”之间添加了额外的空格,所以我看到的是这样的:

Tech1 , Tech2 , Tech3
虽然应该是
Tech1, Tech2, Tech3

甚至

spaceless
模板标签也不起作用。

django django-templates
1个回答
2
投票

正如

{% spaceless %}
 [Django-doc] 的文档所述:

仅删除标签之间的空格 – 不删除标签和文本之间的空格。

因此,这只是标签之间的空格,而不是标签与文本、文本与文本等之间的空格。

您可以使用以下方式渲染:

<li>
    <strong>Category</strong>:
    {% for t in project.technology.all %}
        {{ t.title }}{% if not forloop.last %}, {% endif %}
    {% endfor %}
</li>

因此,我们不会在

{{ t.title }}
和逗号之间渲染空格,因为这些都是不输出任何内容的模板标签。

© www.soinside.com 2019 - 2024. All rights reserved.