如何在 Django 的模板中显示网站的用户友好名称?
How to display the site's user friendly name in a template in Django?
我正在寻找一种在模板中显示我的 Django-CMS 网站名称的方法。
我在 this guide 之后创建了一个基本的 Django-CMS 站点。默认站点名为 Example.com,我可以在管理部分将此名称更改为 "My Super Site"。
接下来,我尝试自定义主题并将其应用到 this guide 之后。它建议使用 {{ request.site.name }}
在页面上显示站点名称。然而,这变成了空,{{ request.site }}
.
也是如此
我进一步搜索,发现有几页越老,越接近这个主题,命题越复杂。最近的一些,比如 this one,表明这与 django-cms 无关,而是与 django 本身和站点框架有关。
我查看了文档,特别是 this page and this one,如果我理解正确的话,它表明站点中间件一旦被激活,就会在模板中可用的请求对象中包含一个站点对象。我检查并启用了站点框架(INSTALLED_APPS 设置中的 'django.contrib.sites',SITE_ID 定义并迁移 运行)。所以,我不明白为什么 {{ request.site }}
是空的。
澄清一下,我不是在寻找域名或主机。我正在寻找用户友好的名称,在 administration/sites.
的 'Change site' 部分的 'Display Name' 下的 django-cms 中找到的名称
感谢您的帮助。
确保将 'django.core.context_processors.request'
添加到您的上下文处理器。
像这样:
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'django.core.context_processors.request',
],
},
},
]
同时将 django.contrib.sites.middleware.CurrentSiteMiddleware
添加到您的 MIDDLEWARE
设置中。
对于较新版本的 django 即.. >3,仅添加
'django.contrib.sites.middleware.CurrentSiteMiddleware',
到 settings.py
中的 MIDDLEWARE 工作。然后调用
{{request.site.name}}
在您的模板中。
我正在寻找一种在模板中显示我的 Django-CMS 网站名称的方法。
我在 this guide 之后创建了一个基本的 Django-CMS 站点。默认站点名为 Example.com,我可以在管理部分将此名称更改为 "My Super Site"。
接下来,我尝试自定义主题并将其应用到 this guide 之后。它建议使用 {{ request.site.name }}
在页面上显示站点名称。然而,这变成了空,{{ request.site }}
.
我进一步搜索,发现有几页越老,越接近这个主题,命题越复杂。最近的一些,比如 this one,表明这与 django-cms 无关,而是与 django 本身和站点框架有关。
我查看了文档,特别是 this page and this one,如果我理解正确的话,它表明站点中间件一旦被激活,就会在模板中可用的请求对象中包含一个站点对象。我检查并启用了站点框架(INSTALLED_APPS 设置中的 'django.contrib.sites',SITE_ID 定义并迁移 运行)。所以,我不明白为什么 {{ request.site }}
是空的。
澄清一下,我不是在寻找域名或主机。我正在寻找用户友好的名称,在 administration/sites.
的 'Change site' 部分的 'Display Name' 下的 django-cms 中找到的名称感谢您的帮助。
确保将 'django.core.context_processors.request'
添加到您的上下文处理器。
像这样:
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'django.core.context_processors.request',
],
},
},
]
同时将 django.contrib.sites.middleware.CurrentSiteMiddleware
添加到您的 MIDDLEWARE
设置中。
对于较新版本的 django 即.. >3,仅添加
'django.contrib.sites.middleware.CurrentSiteMiddleware',
到 settings.py
中的 MIDDLEWARE 工作。然后调用
{{request.site.name}}
在您的模板中。