如何在项目目录内覆盖Django Material Admin模板并使其生效?
Django Material Admin 模板覆盖操作步骤
1. 自定义模板存放路径
你需要保持自定义模板的相对路径和原始模板的相对路径完全一致:
- 首先在你的Django项目根目录下创建
templates文件夹(如果还没有的话) - 按照原始模板的层级新建对应目录:原始模板路径为
site-packages/material/admin/templates/admin/widgets/clearable_file_input.html,你只需要复制templates之后的路径结构,最终修改后的文件存放路径为:<你的项目根目录>/templates/admin/widgets/clearable_file_input.html
其他需要覆盖的Material Admin模板都遵循这个规则,完全匹配原模板从templates目录开始的相对路径即可。
2. 配置调整(settings.py)
只需要两步配置保证自定义模板优先加载:
步骤1:配置模板查找路径
找到settings.py中的TEMPLATES配置项,确保DIRS参数包含你刚才创建的项目根目录templates文件夹:
TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", # 下面这行确保项目根目录的templates优先被查找 "DIRS": [BASE_DIR / "templates"], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], }, }, ]
步骤2(可选):INSTALLED_APPS排序
如果你把自定义模板放在了某个子应用的templates目录下,需要保证这个子应用在INSTALLED_APPS列表中的排序,在material.admin之前,Django会按照INSTALLED_APPS的顺序优先查找排序靠前的应用的模板文件。
配置完成后重启Django运行服务,自定义模板就会覆盖原始框架的模板生效。
内容的提问来源于stack exchange,提问作者Sriram
相关产品推荐
相关产品推荐

