我是否可以使用Django'抑制每个模板标记后的换行符;什么是模板引擎?
在Rails ERB中,可以通过向标记添加尾随连字符来抑制换行:我是否可以使用Django'抑制每个模板标记后的换行符;什么是模板引擎?,django,django-templates,Django,Django Templates,在Rails ERB中,可以通过向标记添加尾随连字符来抑制换行: <ul> <% for @item in @items -%> <li><%= @item %></li> <% end -%> </ul> 变成: <ul> <li>apple</li> <li>banana</li> <li>
<ul>
<% for @item in @items -%>
<li><%= @item %></li>
<% end -%>
</ul>
变成:
<ul>
<li>apple</li>
<li>banana</li>
<li>cacao</li>
</ul>
- 苹果
- 香蕉
- 可可
在Django有没有办法做到这一点?(披露:我正在用Django生成一个csv文件)
编辑:澄清我正在查找的换行符是模板标记后留下的换行符。当您编写模板时,您可以打开模板中的ul硬编码,并循环trought项,然后返回其中的值 据我所知,没有默认的函数。例如:
<ul>
{% for obj in list %}
<li>{{ obj|linebreaksbr|striptags }}</li>
{% endfor %}
</ul>
{列表%中obj的%s}
- {{obj | linebreaksbr | striptags}}
{%endfor%}
或者,这也会在HTML标记之间去除空白/制表符/等:
{{ spaceless }}
<ul>
{% for obj in list %}
<li>{{ obj }}</li>
{% endfor %}
</ul>
{{ endspaceless }}
{{spaceless}
{列表%中obj的%s}
- {{obj}}
{%endfor%}
{{endspaceless}}
{%spaceless%}
- 苹果
- 香蕉
- 可可
{%endspaceless%}
我不知道有什么方法可以丢弃模板标记行。我会投票支持《虫子报告》的开头 我找到的最接近您所要查找的内容(我正在查找相同的内容)是关于未来补丁的讨论,这里:
不幸的是,在他们合并该补丁之前,您似乎无能为力。现在是2016年,我认为这个问题仍然存在。 在本教程中
大约在1:45,模板的单元测试显示在标记的末尾有一个尾随的换行符。这会删除所有的换行符,但不会从只包含模板标记的行中删除换行符。第二个示例会删除所有的换行符,而不仅仅是那些由于在自己的行上有模板标记而导致的换行符。您的第一个示例只是剥离了obj中的换行符……这与OP的要求不完全一样。他们永远不会合并该补丁。错误报告以一条消息结束,本质上说Django的模板引擎不会看到新功能,计划让Jinja成为Django的首选引擎。现在是2017年,仍然没有合理的解决方案!Jinja2有一个解决方案:
{% spaceless %}
<ul>
<li>apple</li>
<li>banana</li>
<li>cacao</li>
</ul>
{% endspaceless %}