30

我正在使用 django 和 python。在模板文件中,我有一个如下所示的下拉列表。有用。唯一的问题是源 html 代码之间有很多空白。有什么办法可以去掉空白吗?谢谢。

           {% for lang_ele in video.languages.all %}
              {% ifequal lang_ele.lang display_language  %}
                   {% for key, value in language_table.items %}
                       {% ifequal lang_ele.lang key%}
                         <option selected = "selected" value={{lang_ele.lang}}>{{value}}</option>
                       {% endifequal %}
                   {% endfor %}
              {% else %}
                   {% for key, value in language_table.items %}
                       {% ifequal lang_ele.lang key%}
                         <option value={{lang_ele.lang}}>{{value}}</option>
                       {% endifequal %}
                   {% endfor %}

              {% endifequal %}
           {% endfor %}

输出的 html 源代码如下所示:

<option value=de>German</option> 


<option value=el>Greek</option> 


<option value=hi>Hindi</option> 
4

3 回答 3

59

您可以使用spaceless模板标签。它:

删除HTML 标记之间的空格。

{% spaceless %}
<p>
    <a href="foo/">Foo</a>
</p>
{% endspaceless %}
于 2012-10-29T15:55:40.817 回答
4
  1. 查看中间件,例如“htmlmin”。它一次处理文件。此外,它还有一个装饰器。 https://crate.io/packages/django-htmlmin

  2. gzip 将产生相同的效果。选择不进行修剪可能需要付出代价。查看 django middelware 或 nginx gzip。

  3. 您在模板中使用控制器/模型逻辑。这是错误的方式。

于 2012-10-29T20:07:07.270 回答
1

我使用自定义辅助函数进行剥离。这是我也使用的一个示例:https ://web.archive.org/web/20140729182917/http://cramer.io/2008/12/01/spaceless-html-in-django/

于 2012-10-29T15:55:31.597 回答