NibiruanChild
@NibiruanChild

Как правильно разбить базовый jinja2 шаблон (Flask/Django) на слои?

Привет.

Я разбиваю базовый шаблон (который наследуется другими шаблонами) на функциональные части (слои/layouts). Выглядит это грубо следующим образом:

base.html
<html>
<head>
    {% include 'layouts/head.html'%}
</head>

<body>
    {% include 'layouts/navbar.html'%}

    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1>{% block title %}{% endblock %}</h1>
                {% block content %}{% endblock %}
            </div>
        </div>
    </div>

    {% include 'layouts/footer.html'%}
    {% include 'layouts/js.html'%}
</body>
</html>


layouts/head.html
...
<title> {% block title %}{% endblock %}</title>
...


Аналогично
layouts/navbar.html
layouts/footer.html
layouts/js.html
итп

И тут у меня возникает 2 проблемы:

1. title не отображается, если задается в слое, добавленном через include (аналогичная конструкция одним файлом, без разбиения на лайоуты отлично работает). В Laravel это отлично работало, а теперь я в ступоре.
2. как мне дважды использовать block title (в качестве title и в качестве h1)
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы