2017-05-19 25 views
0

我目前正在遵循一個教程,該教程介紹了一個定製的Bootstrap 3模板並使用它構建了一個Django站點。在教程中,他們建議將以下模板片段更改爲:在Django 1.9中更改站點名稱

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

更改爲以下代碼片段。

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

但是,當我進行此更改時,不顯示站點名稱。我想知道我應該在哪裏設置這個名字。如果有幫助,我使用的是Django CMS,並且在政府部門的Sites部分中只有一個名爲example.com的站點。

回答

0

看來您必須啓用網站框架,請參閱doc

1

您可以在管理的Sites部分添加網站名稱或更改現有網站example.com

要訪問Site對象,你需要在提供SITE_IDsettings.py

如果要更改example.com然後用SITE_ID在設置

要在Django模板渲染站點名稱,使用從現場模型獲得價值= 1

from django.contrib.sites.models import Site 
current_domain = Site.objects.get_current().domain 

然後傳遞current_domain到模板

2

有同樣的問題,找到this in the documentation

如果你經常使用這種模式:

from django.contrib.sites.models import Site 

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

...有簡單的方法來避免重複。添加django.contrib.sites.middleware.CurrentSiteMiddlewareMIDDLEWARE_CLASSES。中間件在每個請求對象上設置站點屬性,因此您可以使用request.site來獲取當前站點。