You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在项目目录内覆盖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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:51:03