2010-04-09 58 views
13

在Rails ERB,你可以通过添加一个尾随连字符标签抑制换行符:我可以使用Django的模板引擎在每个模板标签之后抑制换行符吗?

<ul> 
    <% for @item in @items -%> 
    <li><%= @item %></li> 
    <% end -%> 
</ul> 

变为:

<ul> 
    <li>apple</li> 
    <li>banana</li> 
    <li>cacao</li> 
</ul> 

有没有办法在Django做到这一点? (披露:我使用Django生成csv文件)

编辑:澄清我追捕的换行符是在模板标记后留下的。

回答

4

我找到的最接近我找到的东西(我在找同样的东西)正在讨论未来的补丁,在这里:http://code.djangoproject.com/ticket/2594

不幸的是,它看起来像,直到他们合并在补丁没有太多可以做。

+1

他们永远不会合并该补丁。该错误报告已经封闭,并且一条消息实质上表明Django的模板引擎不会看到新的功能,并且计划让Jinja成为Django的首选引擎。 – Louis 2015-08-04 12:32:26

0

当你编写一个模板时,你可以打开模板中的ul硬编码,并循环trought项目en返回值。

据我所知,没有默认功能。

1

例如:

<ul> 
{% for obj in list %} 
    <li>{{ obj|linebreaksbr|striptags }}</li> 
{% endfor %} 
</ul> 

还是这个,这也去掉空格/制表符/等HTML标签之间:

{{ spaceless }} 
<ul> 
{% for obj in list %} 
    <li>{{ obj }}</li> 
{% endfor %} 
</ul> 
{{ endspaceless }} 
+0

你的第二个例子删除所有换行符,而不仅仅是由自己行上的模板标签引起的换行符。你的第一个例子只是剥夺换行符,如果OBJ有他们......不完全是OP所要求的。 – CodeBlock 2010-12-13 15:04:32

3
{% spaceless %} 
<ul> 
    <li>apple</li> 
    <li>banana</li> 
    <li>cacao</li> 
</ul> 
{% endspaceless %} 

我不知道任何的方式丢弃模板标签行。我会投票支持开放bug报告。

+4

这将删除所有换行符,它不会从仅包含模板标记的行中抑制换行符。 – CodeBlock 2010-12-13 15:03:17

1

这是2016年了,我想这个问题仍然存在。 在本教程中https://www.youtube.com/watch?v=vQjmz9wCjLA 约在1:45模板的单元测试显示标签末尾有一个尾随的换行符。

+2

现在是2017年,仍然没有合理的解决方案! – NirIzr 2017-01-11 10:26:29