2015-04-24 95 views
1

我有一个明文电子邮件模板:有没有办法去掉模板标签周围的空白?

Here's some info. 

{% if variable %} 
Additional info. 
{% else %} 
Alternative info. 
{% endif %} 

{% if another_variable %} 
IMPORTANT MESSAGE 
{% endif %} 

Final thoughts. 

不幸的是,因为这是一个纯文本的模板,而不是HTML,被包含在输出每个模板标记之后出现的换行符。所以,如果variable == Trueanother_variable == False,输出看起来是这样的:

Here's some info. 


Additional info. 



Final thoughts. 

有一吨的一切之间的额外的空行,这是我想为那里是只有一个。

解决这个问题有没有办法把所有的标签拼在一起(这会使模板难以阅读)?

+0

在这里不是很有帮助,但增加了一点,因为这是一个长期和持续的问题。要开始阅读,请点击[此谷歌群组主题](https://groups.google.com/forum/#!topic/django-developers/jWtqOq6C7gM)。然后是[此票](https://code.djangoproject.com/ticket/2594#comment:56),特别是aaugustin的评论意义重大。在1.8版本中,对替代模板引擎(甚至是单个项目中的多个)的官方支持是可用的,所以如果您的项目已经在1.8,那么Jinja2对于电子邮件模板可能是最佳选择。如果不是,那么它必须是有效的。 :) – sthzg

回答

1

试试这个:

import re 
regex = re.compile(r'\n+') 
regex.sub('\n', template) 

这将单一取代连续的换行。

+0

呵呵,我没有考虑过后处理作为这个潜在的解决方案。我会给你一枪! – CoreDumpError

+0

与正则表达式后处理工作一个治疗!非常感谢您的建议! – CoreDumpError

+0

不客气! –

0

你可以自定义你的。有关指导,请参阅here

+0

我不需要自定义模板标签。我需要一种方法来防止内置标签的行将新行打印到我的明文输出中。 – CoreDumpError

+0

我试过你在我的项目中的代码,但我得到了所有的输出,我想念的东西?还是你? – shellbye