Переопределить шаблоны внешнего приложения в 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
порядок, первый шаблон будет соответствовать.
Имея это в виду, вы можете просто добавить шаблон по тому же пути в пользовательском приложении.