为什么不在覆盖django管理模板时更改显示?

时间:2015-04-10 06:00:52

标签: django django-templates

我跟着this doc更改了base_site.html模板,但没有效果。代码是:

项目结构:

-myproject
  -myproject
    settings.py
    urls.py
    wsgi.py
  -myapp1
  -myapp2
  -templates
    -admin
      base_site.html

setttings.py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    }
]
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader'
)

base_site.html

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

{% block title %}custom title{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">MY custom website name</a></h1>
{% endblock %}

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

完成此操作后,刷新页面,标题和网站名称不会改变,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试此操作以覆盖base_site.html

项目结构(与您的相同)

-myproject
  -myproject
    settings.py
    urls.py
    wsgi.py
  -myapp1
  -myapp2
  -templates
    -admin
      base_site.html

在settings.py

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

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader'
)

base_site.html (与您的相同)

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

{% block title %}custom title{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">MY custom website      name</a></h1>
{% endblock %}

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

您无需定义TEMPLATES=[]。我认为这用于specific个应用。