Я пытаюсь быть сухим с моими шаблонами Django и имею код, который я смешиваю с CSS для простого всплывающего всплывающего окна. Я хотел бы повторно использовать код, но содержимое моего всплывающего окна будет HTML, которое может охватывать несколько строк. Можно ли вставлять многострочные строки в переменную шаблона?Многострочная строка в заявлении Django 'include'
Я пытался сделать что-то в стиле фанк с блоками и block.super
но кажется, что работать только при расширении (не include
)
Вот пример того, что я хотел бы сделать. Является ли это возможным?
index.html
<body>
<h2>My Popup</h2>
{% include "snippets/popup.html" with class="p" spantext="Hover me" popupdiv="""
<h2>This is a popup!</h2>
<ul>
<li>Something</li>
<li>Something else</li>
</ul>
"""
%}
</body>
snippets/popup.html
<div class="{{ class }}">
<span class='pointer'>{{ spantext }}</span>
<div class="popup">
{{ popupdiv }}
</div>
</div>
Я знаю, что это не возможно, чтобы иметь теги шаблона многострочные в Django, но есть ли способ обойти это, кроме давя все мои Див HTML на одну строку и избежать кавычек?
Приветствия
Я не проверял это, но я предполагаю, что, поскольку вы все еще используете тег шаблона ('show_popup'), вы по-прежнему не можете добавить текст, который охватывает несколько строк? Я пересмотрел свой вопрос, чтобы быть более явным о том, что я хочу – Patrick
Это не работает. Он по-прежнему отстает от нескольких строк. – Patrick
Вы хотите, чтобы абсолютное использование списка html? Можете ли вы использовать переменную цикла при вызове тега шаблона. Например, {% show_popup "class", "span_text" variable%} и в вашем шаблоне {% for item in variable%}