如何在 django 模板中获取站点名称?

Posted

技术标签:

【中文标题】如何在 django 模板中获取站点名称?【英文标题】:How to get site name in django template? 【发布时间】:2014-02-07 10:26:42 【问题描述】:

在管理界面中,我可以看到如何指定站点名称。但是我在我的模板中找不到如何使用它的文档。

【问题讨论】:

站点不是 django cms 功能,它是 Django 功能:docs.djangoproject.com/en/dev/ref/contrib/sites 【参考方案1】:

您可以在类 requests.RequestSite 中设置站点名称。它是一个共享站点主要接口的类(即,它具有域和名称属性),但从 Django HttpRequest 对象而不是从数据库中获取其数据。您必须在其中使用 __init__(request) 将 name 和 domain 属性设置为 get_host() 的值。

联合框架中,标题和描述模板自动访问变量 site ,它是表示当前站点的站点对象。此外,如果您未指定完全限定的域,则用于提供项目 URL 的挂钩将使用当前 Site 对象中的域。

身份验证框架中,django.contrib.auth.views.LoginView 将当前站点名称作为 site_name 传递给模板>.

Reference

【讨论】:

【参考方案2】:

我遇到了类似的问题,并在这篇文章中找到了解决方案: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 访问模板中的站点名称了。

【讨论】:

以上是关于如何在 django 模板中获取站点名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 django rest 框架在模板中获取模型选择字段名称而不是 id

如何获取标签名称作为 Django 模板中选中/选中复选框的值

Django 1.11 如何从保存在 CMS 站点模型中的 HTML 中显示模板变量

在 Django 1.9 中更改站点名称

如何在 Django 模板中发出外部网站的 HTML?

如何在 Django 中获取服务器名称以获得完整的 url?