我是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>
我真的希望有人能指出我正确的方向。
答案 0 :(得分:0)
这一行:
{{ site_header|default:_('THIS IS WHAT I CHANGED') }}
正在评估site_header
,如果找到False
,则会输出默认值。 site_header
是AdminSite
类中定义的变量。您对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;