我正在使用位于this site的Django网站。由于HTML中不需要的空格,我在输出中得到了不需要的空格。
例如," 01-1737,民事审查局,不可持续的语言,持续,"在大多数逗号之前有额外的空格。
我发现其他帖子有类似的问题,但没有解决方案对我有用。我尝试了{%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 %}
答案 0 :(得分:1)
{% spaceless %}
没有为您删除所有空间的原因是因为它仅在 HTML标记之间。您的空白区域显示 <li>
标记。
我似乎无法为Django的标准模板系统找到一个好的解决方案,但它确实看起来像Jinja提供了你正在寻找的东西。它使用破折号去除尾随或前导空格:
{% for item in seq -%}
{{ item }}
{%- endfor %}
为了使用Jinja而不是Django的默认模板系统,您必须按Django's docs所述更改settings.py
文件:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2.',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
# ... some options here ...
},
},
]