无法更改 Django 管理模板

Posted

技术标签:

【中文标题】无法更改 Django 管理模板【英文标题】:Can't change Django admin template 【发布时间】:2015-05-01 12:11:45 【问题描述】:

刚开始an official Django tutorial 已经遇到问题,无法在管理面板中更改页面名称。我正在尝试按照教程中的建议用 base_site.html 中的自定义内容替换默认的 Django administration(我从 django 源目录复制到我的应用程序中的文件,试图将其移入/移出 polls 目录等。 ), 我在设置中添加了TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')],在installed apps 中也添加了'polls',,但没有任何变化。

有什么建议可以让它发挥作用吗?

谢谢

【问题讨论】:

【参考方案1】:

如果你只像这样改变括号内的值是行不通的

 site_header|default:_('Your custom name') 

你需要做的是你必须像这样用你想要的名字替换上面的所有内容。

% extends "admin/base.html" %

% block title % title  | YOUR CUSTOM NAME% endblock %

% block branding %
<h1 id="site-name"><a href="% url 'admin:index' %">YOUR CUSTOM NAME</a></h1>
% endblock %

% block nav-global %% endblock %

【讨论】:

【参考方案2】:

我在 Django 站点的根级别创建了一个模板文件夹。

base-folder 
--apps
--templates 
----admin 
------base_site.html

我按照我的意愿编辑了 base_site.html,我只是像你想要的那样更改了名称。然后我将此行添加到我的 settings.py 中

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]

这对我有用。如果您在键入 /admin 时看到管理站点,则表示您的 url-config 已设置。只需确保您的 TEMPLATE_DIRS 与管理模板的目录匹配。 templates 目录中应该有 admin 目录,其中包含管理页面的所有必要模板。

【讨论】:

我有完全相同的设置/项目层次结构。还是不行。 @ikechi 并且您确定您已将编辑保存到 base_site.html? @ikechi 和您的设置文件也正确设置了变量 BASE_DIR?您可能想查看来自this question 的最佳答案 更改为 abspath 没有帮助。我真的不知道是什么问题。

以上是关于无法更改 Django 管理模板的主要内容,如果未能解决你的问题,请参考以下文章

django:我如何实际覆盖管理站点模板

`Django 管理`到项目模板中的自定义标题

django更改管理视图(无模型)

如何从 django 管理站点中删除更改密码链接?

无法正确扩展模板 - 父模板中缺少元素

Django管理系统后端开发1