覆盖第 3 方包中的 Django 管理模板?

问题描述 投票:0回答:1

我正在开发一个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 似乎没有改变这一点。

python django templates jinja2
1个回答
0
投票

它应该考虑模板加载器的顺序(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
应用程序之前,以便首先搜索模板。

© www.soinside.com 2019 - 2024. All rights reserved.