gpt4 book ai didi

python - Django 1.8 BASE_DIR 模板问题

转载 作者:行者123 更新时间:2023-11-28 19:17:15 25 4
gpt4 key购买 nike

我是 Django 的新手,遇到了一个让我很困惑的错误。我只是将一个基本站点放在一起并使用该教程作为指导,但我遇到了有关模板的问题。我在与 manage.py 相同的目录中创建了一个模板目录,在模板中创建了一个管理目录,并根据教程在管理目录中复制/粘贴了 base_site.html。然后我更改了一些 header ,保存了所有内容,重新启动了服务器,然后……什么也没有。没有错误但没有变化。就好像我什么都没做一样。我已经尝试了此处建议的各种修复方法,但似乎都不起作用。就好像找不到模板目录,所以应用程序正在使用默认目录。以下是我现在拥有的基础知识:

目录结构:Project>App、templates>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>

我真的希望有人能在这里为我指明正确的方向。

最佳答案

这一行:

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

正在评估 site_header,如果发现 False,将输出默认值。 site_header 是在AdminSite 类中定义的变量。您对 site_header 的描述没有理由为 False,因此将显示 site_header,而不是您更改的文本。

参见默认过滤器描述:

DEFAULT

If value evaluates to False, uses the given default. Otherwise, uses the value.

For example:

{{ value|default:"nothing" }} If value is "" (the empty string), the output will be nothing.

此处: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 = "新标题"

关于python - Django 1.8 BASE_DIR 模板问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com