Переопределить шаблон 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, чтобы оно искало шаблон первым.

Вернуться на верх