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

Django 2.0.5 Admin模板覆盖失败问题求助

解决Django Admin模板覆盖不生效的问题

别急,我来帮你一步步排查问题——你已经做了很多正确的操作,可能只是几个细节没注意到:

1. 先确认你的修改是否已经部分生效

首先,先登录进后台首页(不是登录页),看看顶部的标题是不是已经变成你设置的Bug administration了?

  • 如果已经变了,说明你的base_site.html配置是有效的!你之前看到的登录页的“Django Administration”是另一个模板控制的,base_site.html只负责登录后的后台界面标题。
  • 如果登录后还是默认标题,那我们再往下排查。

2. 检查模板文件的路径是否完全正确

你的settings.py里TEMPLATES的DIRS配置是os.path.join(BASE_DIR, 'templates'),这意味着你的模板文件必须放在项目根目录下的templates文件夹里,路径结构应该是这样的:

你的项目根目录/
├── BugReport/       # 项目配置文件夹(包含settings.py)
├── Bugs/            # 你的应用
├── templates/       # 项目级模板文件夹
│   └── admin/
│       └── base_site.html
└── db.sqlite3

你可以在PyCharm里右键点击templates文件夹,查看它的绝对路径,确认是否和BASE_DIR拼接后的路径一致(可以临时在settings.py里加一行print(BASE_DIR),运行项目后在控制台查看路径)。

3. 如果是登录页的标题没改,需要单独修改登录模板

登录页的“Django Administration”来自admin/login.html模板,这个模板和base_site.html是完全分开的。要修改它的话:

  • 找到你的Python环境里的django/contrib/admin/templates/admin/login.html文件(如果用了虚拟环境,就在虚拟环境的Lib/site-packages/django/contrib/admin/templates/admin/目录下)。
  • 把这个文件复制到你项目的templates/admin/目录下。
  • 打开复制后的login.html,找到类似这样的代码:
    <h1>{{ site_header|default:_('Django Administration') }}</h1>
    
    把它改成你想要的内容,比如:
    <h1>Bug Administration</h1>
    
    或者保持变量引用,让它和base_site.html的设置同步。

4. 清除浏览器缓存再测试

有时候浏览器会缓存旧的模板内容,尤其是开发环境下偶尔也会出现这种情况。可以用无痕模式打开后台,或者按Ctrl+F5强制刷新页面,看看修改是否生效。

额外小检查

  • 确认你的INSTALLED_APPS顺序没问题:你把Bugs放在了django.contrib.admin前面,这是正确的,能让Django优先加载你的应用或项目级模板。
  • 确认DEBUG=True(你的配置里已经开了),开发环境下Django会自动重载模板,但如果修改了settings.py,记得重启PyCharm里的服务。

内容的提问来源于stack exchange,提问作者user9779509

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:31:59