Переопределить шаблон Django Admin в стороннем пакете?
Я разрабатываю пакет Python, который включает в себя приложение Django addon. Пакет связан с аутентификацией, поэтому я хотел бы расширить страницу входа django.contrib.admin
.
Возможно ли, чтобы мой пакет стороннего производителя переопределял другой пакет стороннего производителя?
Шаблон для страницы входа в систему находится в разделе django/contrib/admin/templates/admin/login.html
. Это означает, что шаблон зарегистрирован как admin/login.html
.
Я поместил свой переопределенный шаблон в каталог templates/admin/login.html
моего пакета, но шаблон не переопределяется.
Порядок моих пакетов и Django contrib admin в INSTALLED_APPS
, шаблон app dirs = true, похоже, не меняют этого.
Он должен учитывать порядок ваших загрузчиков шаблонов (https://docs.djangoproject.com/en/1.10/ref/templates/api/#loader-types) и порядок ваших INSTALLED_APPS
.
Насколько я помню, вам нужно использовать django.template.loaders.app_directories.Loader
. APP_DIRS=True
должен работать только в том случае, если у вас указаны загрузчики по умолчанию. Если у вас есть собственный список загрузчиков, вам нужно будет добавить загрузчик в этот список.
Затем вам нужно будет поместить свое приложение перед приложением django.contrib.admin
, чтобы оно искало шаблон первым.