【问题标题】:Can't change Django admin template无法更改 Django 管理模板
【发布时间】: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',,但没有任何变化。

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

谢谢

【问题讨论】:

    标签: python django django-templates


    【解决方案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 没有帮助。我真的不知道是什么问题。