我正在开发一个位于 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 ...
},
},
]
