在Django 1.9中更改站点名称

时间:2017-05-19 15:07:07

标签: python django twitter-bootstrap django-cms

我目前正在学习一个介绍自定义Bootstrap 3模板的教程,并使用它构建一个Django站点。在教程中,他们建议您更改以下模板代码段:

<a class="navbar-brand" href="index.html">Start Bootstrap</a>

到以下代码段。

<a class="navbar-brand" href="/">{{ request.site.name }}</a>

但是,当我进行此更改时,不会显示任何站点名称。我想知道我应该在哪里设置这个名字。如果它有帮助,我使用的是Django CMS,并且在管理的example.com部分中只有一个名为Sites的网站。

3 个答案:

答案 0 :(得分:3)

遇到同样的问题,找到this in the documentation

  

如果您经常使用此模式:

from django.contrib.sites.models import Site

def my_view(request):
    site = Site.objects.get_current()
     

......有简单的方法可以避免重复。将 django.contrib.sites.middleware.CurrentSiteMiddleware 添加到 MIDDLEWARE_CLASSES 。中间件在每个请求对象上设置site属性,因此您可以使用request.site来获取当前站点。

答案 1 :(得分:2)

您可以在管理的example.com部分添加网站名称或更改名为Sites的现有网站。

要访问Site对象,您需要在SITE_ID

中提供settings.py

如果您要更改example.com,请在设置中使用SITE_ID = 1

要在django模板中呈现网站名称,请使用

从网站模型中获取值
 from django.contrib.sites.models import Site
 current_domain = Site.objects.get_current().domain

然后将current_domain传递给模板

答案 2 :(得分:0)

您似乎必须启用网站框架,请参阅doc