如何在 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 模板中选中/选中复选框的值