我目前正在学习一个介绍自定义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
的网站。
答案 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。