Теги включения шаблонов Django, подавление пропущенной новой строки
Во-первых, я знаю о {% spaceless %}
. Я не хочу удалять все пробелы. Я просто хочу, чтобы тег включения только отображал шаблон, а не добавлял свои собственные пробелы по своему усмотрению.
Например, у меня есть тег шаблона:
from django import template
register = template.Library()
@register.inclusion_tag(f'myemail/button.html')
def myemail_button(href, title, color, background_color):
return {
'href': href,
'title': title,
'color': color,
'background_color': background_color,
}
А это шаблон тега включения (myemail/button.html
):
<table><tbody><tr>
<td style="background-color:{{ background_color }}; border-radius:5px; border:solid 1px {{ background_color }}; color:{{ color }}; padding:0px;">
<a href="{{ href }}" style="background-color:{{ background_color }}; border-radius:5px; border:solid 1px {{ background_color }}; color:{{ color }}; display:inline-block; font-weight:bold; padding:12px; text-align:center; text-decoration:none;" target="_blank"> {{ title }} </a>
</td>
</tr></tbody></table>
Затем при рендеринге этого шаблона (нет пустой строки ни в начале, ни в конце файла:
){% load myemail %}{% myemail_button href="https://example.com" title="CLICK ME!" color="#123456" background_color="#abcdef" %}
{% myemail_button href="https://example.com" title="CLICK ME!" color="#123456" background_color="#abcdef" %}
Выглядит так (обратите внимание на пробел между двумя соседними элементами <table>
(это новая строка, которую я не хотел бы автоматически вставлять):
<table><tbody><tr>
<td style="background-color:#abcdef; border-radius:5px; border:solid 1px #abcdef; color:#123456; padding:0px;">
<a href="https://example.com" style="background-color:#abcdef; border-radius:5px; border:solid 1px #abcdef; color:#123456; display:inline-block; font-weight:bold; padding:12px; text-align:center; text-decoration:none;" target="_blank"> CLICK ME! </a>
</td>
</tr></tbody></table>
<table><tbody><tr>
<td style="background-color:#abcdef; border-radius:5px; border:solid 1px #abcdef; color:#123456; padding:0px;">
<a href="https://example.com" style="background-color:#abcdef; border-radius:5px; border:solid 1px #abcdef; color:#123456; display:inline-block; font-weight:bold; padding:12px; text-align:center; text-decoration:none;" target="_blank"> CLICK ME! </a>
</td>
</tr></tbody></table>