Skip to main content
 首页 » 编程设计

python之Django 模板标签创建空间

2025年04月02日32落叶

我正在开发一个位于 this site 的 Django 站点.由于 HTML 中不需要的空格,我的输出中出现了不需要的空格。

例如,“01-1737 , Civilian Review Authority , INAPPROPRIATE LANGUAGE, SUSTAINED,” 在大多数逗号前有额外的空格。

我发现其他帖子也有类似的问题,但没有一个解决方案对我有用。我尝试了 {% spaceless %} 标签,但没有用。唯一对我有用的是将所有模板标签放在 for 循环中的一行中,但我真的很想找到比这更具可读性的解决方案。

这是 Django 模板的代码:

{% extends 'police_archive/base.html' %} 
 
{% block content %} 
    <h2> {{officer.first_name}} {{officer.last_name}}, badge #{{officer.badge}} </h2> 
    <p><strong>Department:</strong> {{officer.department}}</p> 
    <h2>Complaints</h2> 
    <ul> 
        {% for details in details_list %} 
            <li> 
 
 
                {% if details.incident.case_number %} 
                    <a href='/police_archive/complaint/{{details.incident.case_number}}'> 
                         {{details.incident.case_number}} 
                    </a> 
                {% else %} 
                 No Case Number Found 
                {% endif %} 
 
 
                {% if details.incident.office %} 
                 , {{details.incident.get_office_display}} 
                {% else %} 
                , No office found 
                {% endif %} 
 
                {% if details.allegation %} 
                 , {{details.allegation}} 
                {% endif %} 
 
                {% if details.finding %} 
                 , {{details.finding}} 
                {% endif %} 
 
                {% if details.action %} 
                 , {{details.action}} 
                {% endif %}   
 
            </li> 
        {% endfor %} 
 
 
{% endblock %} 

请您参考如下方法:

原因{% spaceless %}没有为您删除所有空间是因为它只适用于 HTML 标签。您的空格出现在 内 <li>标签。

我似乎无法为 Django 的标准模板系统找到好的解决方案,但它看起来确实像 Jinja提供您正在寻找的东西。它使用破折号去除尾随或前导空格:

{% for item in seq -%} 
    {{ item }} 
{%- endfor %} 

为了使用 Jinja 而不是 Django 的默认模板系统,你必须改变你的 settings.py Django's docs 描述的文件:

TEMPLATES = [ 
    { 
        'BACKEND': 'django.template.backends.jinja2.Jinja2.', 
        'DIRS': [], 
        'APP_DIRS': True, 
        'OPTIONS': { 
            # ... some options here ... 
        }, 
    }, 
]