Django 1.8 BASE_DIR模板问题

时间:2015-08-21 16:50:20

标签: python django templates django-admin

我是Django的新手,遇到了一个让我感到难过的错误。我只是将基本网站放在一起并使用本教程作为指导,但我遇到了有关模板的问题。我在manage.py所在的目录中创建了一个templates目录,在模板中创建了一个admin目录,并根据教程在admin目录中复制/粘贴了base_site.html。然后我更改了一些标题,保存了所有内容,重新启动了服务器,并且......没有。没有错误,但没有变化。好像我什么也没做。我已经尝试了这里建议的各种修复,但似乎都没有。它好像找不到模板目录所以应用程序正在使用默认值。以下是我现在的基础知识:

目录结构:项目>应用,模板> admin> base_site.html,manage.py等。

在我的settings.py中:

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

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',
        ],
    },
},

并在base_site.html中:

<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('THIS IS WHAT I CHANGED') }}</a></h1>

我真的希望有人能指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

这一行:

{{ site_header|default:_('THIS IS WHAT I CHANGED') }} 

正在评估site_header,如果找到False,则会输出默认值。 site_headerAdminSite类中定义的变量。您对site_header所描述的内容没有理由False,因此会显示site_header,而不是您更改的文字。

请参阅Default filter说明:

  

默认

     

如果value的计算结果为False,则使用给定的默认值。否则,用途   价值。

     

例如:

     

{{value |默认:&#34;没有&#34;如果值是&#34;&#34; (空字符串),.   输出将一无所获。

此处:https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#default

有多种方法可以更改site_header,您可以根据AdminClass创建自定义模型,然后为此新实例定义site_header。这意味着也要定义一个新的URL。

或者您可以设置site_header:

django.contrib.admin.AdminSite.site_header =&#34;新标题&#34;