2015-04-24 2 views
1

У меня есть шаблон для открытого текста по электронной почте:Есть ли способ обрезать пробелы вокруг тега шаблона?

Here's some info. 

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

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

Final thoughts. 

К сожалению, так как это открытый текст шаблона, а не HTML, то символы новой строки, которые появляются после каждого шаблона тега включаются в вывод. Так что, если variable == True и another_variable == False, то результат выглядит следующим образом:

Here's some info. 


Additional info. 



Final thoughts. 

Есть тонна дополнительных пустых строк между всем, что я хотел бы там быть только один.

Есть ли способ обойти эту проблему, не сбивая все теги вместе (что затрудняет чтение шаблона)?

+0

Не очень полезно здесь, но немного добавить, поскольку это долгая и постоянная проблема. Чтобы начать чтение, существует [этот поток групп google] (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

Смежные вопросы