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

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

【问题讨论】:

标签: python django django-templates


【解决方案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 }}访问模板中的站点名称了。

    【讨论】:

      猜你喜欢
      • 2014-07-16
      • 1970-01-01
      • 2012-01-04
      • 2018-03-10
      • 2010-11-29
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2015-01-11
      相关资源
      最近更新 更多