自定义 base_site.html 在 Django 中不起作用

Posted

技术标签:

【中文标题】自定义 base_site.html 在 Django 中不起作用【英文标题】:Custom base_site.html not working in Django 【发布时间】:2013-07-21 17:36:09 【问题描述】:

我正在使用Nitrous 来玩 Django 框架。在tutorial 2 中显示了如何更改 base_site.html 模板。我在 TEMPLATE_DIRS = ( ) 中添加了一个新行:

'home/action/workspace/mysite/templates',

并且在 base_site.html 中我将 Django Administration 的站点名称标题更改为 Administration:

% trans '管理' %

但我仍然看到网站上没有任何变化。我尝试过不同的 TEMPLATE_DIRS,例如:

'~/workspace/mysite/templates',

'home/action/workspace/mysite/',

'home/action/workspace/mysite/templates/',

然后重新启动服务器。但我做错了。

【问题讨论】:

【参考方案1】:

请注意,此答案是在 Django 1.8 中引入 TEMPLATES 设置之前编写的。

教程说你应该在你的模板目录中创建一个admin 子目录,然后把你的模板放在里面。

尝试在/home/action/workspace/mysite/templates/admin 中使用base_site.html 并使用

TEMPLATE_DIRS = (
    '/home/action/workspace/mysite/templates',
)

注意/home/... 之前的斜线和尾随逗号,使其成为一个元组。

【讨论】:

对不起,我没有提到它,但我已将 base_site.html 复制到 home/action/workspace/mysite/templates/admin 并且我还将 TEMPLATE_DIRS 更改为 home/action/workspace/mysite/templates/admin...但没有结果。 谢谢,home 前面的斜线是解决方案!注意template后面的斜线不是必须的。 很高兴 :) 我已将评论移至答案,并删除了尾部斜杠。

以上是关于自定义 base_site.html 在 Django 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.10:base_site.html 覆盖不起作用

Django 自定义项目模板

自定义 Django 管理模板

管理员模板覆盖忽略的标题栏

Django 教程第 2 部分模板——base_site.html 更改未反映

无法更改 Django 管理模板