【问题标题】:Template changes are not appearing in Django admin site模板更改未出现在 Django 管理站点中
【发布时间】:2014-10-06 21:53:52
【问题描述】:

我正在阅读 Django 教程,第 2 步在这里找到:https://docs.djangoproject.com/en/1.7/intro/tutorial02/

我已按照教程中的步骤进行操作,这是我的文件结构:

mysite
----mysite
--------templates
------------admin
----------------base_site.html
--------settings.py
----polls
----manage.py

这是我在 settings.py 中所做的更改:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

#this is the change
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]

这是base_site.html的内容:

{% extends "admin/base.html" %}

{% block title %}{{ title }} | {{ site_title|default:_('Polls site admin') }}{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Polls administration') }}</a></h1>
{% endblock %}

{% block nav-global %}{% endblock %}

我不明白我做错了什么。管理站点中不会显示任何更改。我已经重启了好几次了。它仍然显示默认的“Django 管理”等。我什至尝试清除浏览器缓存。

编辑:我也在不同的浏览器中尝试过,只是为了仔细检查,但更改仍然没有出现。

救命!

【问题讨论】:

    标签: python django


    【解决方案1】:

    您的模板目录比您告诉 Django 查找的目录低一级。

    要么改成:

    PROJECT_DIR = os.path.dirname(__file__)
    BASE_DIR = os.path.dirname(PROJECT_DIR)
    
    #this is the change
    TEMPLATE_DIRS = [os.path.join(PROJECT_DIR, 'templates')]
    

    或者改成:

    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    
    #this is the change
    TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'mysite', 'templates')]
    

    【讨论】: