Переопределить шаблоны внешнего приложения в Django

Я хочу переопределить шаблоны внешнего приложения ( allauth, установленного в пакетах сайта). К сожалению, ни один совет, который я прочитал, не сработал. Я добавил следующее к моему settings.py:

PROJECT_ROOT = os.path.normpath(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, 'templates', 'allauth'))

и скопировал все шаблоны ( этот контент) в my_project_dir/templates/allauth, Но когда я перезагружаю сервер и перезагружаю страницу, я получаю только отрендеренные шаблоны из исходного приложения allauth в пакетах сайта, а не мои собственные шаблоны. Есть намеки?

2 ответа

Решение

То, как я склонен выяснять, что происходит (с DEBUG установлен в True), должен иметь представление, отображающее шаблон, который не существует, и просмотр списка мест, из которых Django пытался загрузить шаблоны (которые будут включены в вывод страницы ошибок).

Какие шаблоны пытаются отобразить представления? Если они пытаются сделать allauth/foo.htmlтогда вы захотите добавить my_project_dir/templates на ваш TEMPLATE_DIRS настройка, а не my_project_dir/templates/allauth,

Проверить INSTALLED_APPS порядок, первый шаблон будет соответствовать.

Имея это в виду, вы можете просто добавить шаблон по тому же пути в пользовательском приложении.

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