Django模板标签创建空间

时间:2016-09-22 16:38:09

标签: python django

我正在使用位于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 %}

1 个答案:

答案 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 ...
        },
    },
]