Вопрос

Я использую 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 %}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top