Как использовать более одного файла _base.html с помощью django-two-factor-auth?

Библиотеке Django-two-factor-auth требуется файл _base.html для настройки стиля для интеграции.

Мне нужно, чтобы база для моей страницы входа отличалась от базы для двух других страниц факторов. Как я могу использовать два разных файла _base.html вместо использования одного и того же _base.html для всех двух URL-адресов факторов?

2 ответа

В каталоге вашего проекта добавьте папку с именем templates, того же уровня, что и ваши приложения, например users, blogsи т.д. Внутри него создайте еще одну папку для two_factor. Внутри этой папки поместите измененный base.html.

Если каким-то образом вы получите сообщение об ошибке, в вашем settings.py под TEMPLATES = [. Заменить

'DIRS': [],

с участием

'DIRS': [os.path.join(BASE_DIR, 'templates')], # in django2

или же

'DIRS': [BASE_DIR.joinpath('templates')],# in django3

Вот документ о шаблонах

Обновление после собственного ответа op

Если ты хочешь иметь two_factor/templates/two_factor/core/login.html используй свой собственный base.html, вы должны следовать тому, что я упомянул выше, у вас будет templates/two_factor/core/login.html. Обратите внимание, что templates находится на том же уровне каталога, что и другие apps. в templates папка, создать two_factor папку, затем внутри нее сгенерируйте core папка, затем внутри нее сгенерируйте login.html. Теперь вы можете изменить его как хотите.

Причина, по которой вы хотите переопределить, но не изменять что-либо в каталоге пакета, заключается в том, что при обновлении пакета вам придется снова вносить изменения вручную.

Причина, по которой описанный выше подход работает, заключается в том, что мы положили 'DIRS': [os.path.join(BASE_DIR, 'templates')]в настройках Django сначала будет искать шаблоны в этой папке. Подробное описание этого метода находится здесь. Переопределение из каталога шаблонов проекта.

Мне удалось решить эту проблему, вручную изменив следующую строку в каталоге пакета two_factor/templates/two_factor/core/login.html ссылаясь на _base.html файл в базовый шаблон моей страницы входа.

{% extends "two_factor/_base_focus.html" %}

Затем я продолжил использовать _base.html для настройки двух других страниц факторов.

Другие вопросы по тегам