Concat Несколько блоков в jinja2?
Вопрос
Я использую Jinja2 для моего шаблона двигателя в Python.
Я хотел бы присоединиться к содержанию нескольких блоков и хотел бы сделать его в конце шаблона, просто перед тегом. {Они различные фрагменты JavaScript по всему коду в нескольких шаблонах, которые я хотел бы перейти к концу файла, как мне это сделать? }
редактировать :
Я хотел бы переместить все свой встроенный JavaScript, созданный в шаблонах ребенка Jinja. Я хотел бы переместить их в нижнюю часть страницы. Поэтому я создал блок в родительском шаблоне в конце страницы и используя его в дочернем шаблоне для записи JavaScript. Но может быть несколько ребенков, и поэтому несколько блоков JavaScript, и в Jinja2 не поддерживается несколько блоков, какое у меня есть другое решение? ---------- Один альтернатива, я думаю, это создать сам JavaScript таким образом, чтобы он не должен быть встроенным.
Решение
Я предполагаю, что несколькими детьми, вы имеете в виду, что есть шаблоны, наследующие из шаблонов, наследующих из шаблонов ... наследование от базового шаблона. Если это так, вам нужно определить то же самое javascript
Блок в каждом шаблоне и позвоните super()
Во всех детей, в дополнение к добавлению больше JavaScript. Призыв super()
печатает вывод родителей javascript
Блок, и так на цепочке наследования. По пути каждый блок может добавлять свой собственный код.
Таким образом, вы можете иметь что-то вроде этого в каждом шаблоне:
{% block javascript %}
{{ super() }}
function foo(x, y) {
return x + y;
}
{% endblock %}