我正在开发一个Python包,其中包含一个Django插件应用程序。该包与身份验证相关,因此我想扩展
django.contrib.admin
登录页面。
我的第 3 方包是否可以覆盖另一个第 3 方包?
登录页面的模板位于
django/contrib/admin/templates/admin/login.html
下。这意味着模板已注册为 admin/login.html
。
我将覆盖的模板放在包的
templates/admin/login.html
目录中,但模板没有被覆盖。
我的包和 Django contrib admin 中的顺序
INSTALLED_APPS
,template 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
应用程序之前,以便首先搜索模板。