【发布时间】:2014-02-07 10:26:42
【问题描述】:
在管理界面中,我可以看到如何指定站点名称。但是我在我的模板中找不到如何使用它的文档。
【问题讨论】:
-
站点不是 django cms 功能,它是 Django 功能:docs.djangoproject.com/en/dev/ref/contrib/sites
标签: python django django-templates
在管理界面中,我可以看到如何指定站点名称。但是我在我的模板中找不到如何使用它的文档。
【问题讨论】:
标签: python django django-templates
您可以在类 requests.RequestSite 中设置站点名称。它是一个共享站点主要接口的类(即,它具有域和名称属性),但从 Django HttpRequest 对象而不是从数据库中获取其数据。您必须在其中使用 __init__(request) 将 name 和 domain 属性设置为 get_host() 的值。
在联合框架中,标题和描述模板自动访问变量{{ site }},它是表示当前站点的站点对象。此外,如果您未指定完全限定的域,则用于提供项目 URL 的挂钩将使用当前 Site 对象中的域。
在身份验证框架中,django.contrib.auth.views.LoginView 将当前站点名称作为{{ site_name }} 传递给模板>.
【讨论】:
我遇到了类似的问题,并在这篇文章中找到了解决方案:How to display the site's user friendly name in a template in Django?
基本上,在我的 settings.py 中,我必须将 'django.core.context_processors.request', 添加到我的 TEMPLATES -> OPTTIONS -> context_processors。然后就可以使用{{ request.site.name }}访问模板中的站点名称了。
【讨论】: