Django:覆盖 base_site.html
Posted
技术标签:
【中文标题】Django:覆盖 base_site.html【英文标题】:Django: Overrideing base_site.html 【发布时间】:2014-03-01 12:41:57 【问题描述】:各位, 我尝试按照Django Tutorial 中的步骤自定义管理模板。我按照字母的步骤创建了一个目录结构如下:
- myproject/
- myproject/
- templates/
- admin/
- base_site.html
- myapp1/
- manage.py
我编辑了 base_site.html 以将文本“Django 站点管理员”更改为“我的站点管理员”。
我编辑了 myproject/settings.py 以添加:
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
运行后,我对 base_site.html 的更改没有生效。
然后我按照this post 上的建议创建了以下目录结构:
- myproject/
- myproject/
- templates/
- admin/
- base_site.html
- myapp1/
- manage.py
并将以下内容添加到我的 settings.py 文件中:
TEMPLATE_DIRS = (os.path.join(BASE_DIR,'..', 'mytemplates'),)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
当我访问管理页面时,仍然会看到“Django 管理”。我做错了什么?
【问题讨论】:
【参考方案1】:BASE_DIR 是指基本目录,因此您应该在新布局中使用 TEMPLATE_DIRS 的原始值。
【讨论】:
就是这样!谢谢你的帮助。虽然 Python 和 Django 总体上非常直观,但模板目录的东西似乎是黑魔法。显然,我没有以正确的方式思考这个问题。你能指出我正确的教程或文档吗?以上是关于Django:覆盖 base_site.html的主要内容,如果未能解决你的问题,请参考以下文章
自定义 base_site.html 在 Django 中不起作用