Я использую Flask-Security в своем проекте и хотел бы расширить предлагаемые им шаблоны (а именно логин), чтобы стилизовать их с помощью пользовательского CSS. Следуя документации, я изменил значение конфигурации SECURITY_LOGIN_USER_TEMPLATE
, чтобы оно указывало на мой шаблон. В этом шаблоне я расширяю шаблон, предоставленный Flask-Security ("security/login_user.html"
), и изменяю содержимое некоторых блоков, которые он определяет (или его основу).
Мой шаблон отображается так, как ожидалось (выглядит как стандартный "security/login_user.html"
), единственная проблема заключается в том, что блоки, которые я пытаюсь перезаписать, не перезаписываются.
Мой шаблон выглядит так: login.html:
{% extends "security/login_user.html" %}
{% block content %}
<p>There should be no form.</p>
{% endblock content %}
Чтобы подтвердить, что я не отображаю исходный шаблон, я попытался изменить содержимое файла шаблона на пустое, и он работает должным образом - ничего не отображается.
Что мне не хватает?
Поработав некоторое время с отладчиком, я понял, что что-то не так с пакетом Flask-Security, доступным на PyPi. При разработке своего проекта я опирался на исходный код, который присутствует на их официальном гитхаб-страница. Если вы посмотрите на шаблон входа в систему, вы заметите, что он действительно расширяет базовый шаблон, который обеспечивает определение блоков, которые вы можете позже перезаписать.
Однако, когда вы загружаете пакет из ПиПи, а затем проверяете шаблон, вы замечаете, что он отличается - он не использует наследование Jinja2 и не использует какие-либо блоки, поэтому проблема описана в вопросе.
Другими словами, пакет PyPi отражает последнюю стабильную версию (как отметил ник-k9), которая значительно отличается от ветки разработки.
Пакет использует версию 3.0.0, которая сохранена в 3.0.0 тег на Github. Но когда вы посещаете Github, вы видите ветку по умолчанию развивать. Я вижу, как вы будете сбиты с толку, но PyPi не устарел. 3.0.0 — последняя стабильная версия.