2012-12-07 48 views
2

我使用兩個域名(.com和.mx)作爲夾層項目。當我使用Site.objects.get_current()函數獲取當前站點ID它只返回一個。 我的瀏覽器中是否使用.com或.mx。在django中獲取多個站點ID的問題

我認爲這是因爲在我的settings.py的SITE_ID = 1定義,當我把它編輯到2然後Site.objects.get_current()函數返回2.

但我其實希望是網站定義模板,那就是當用戶使用.COM那麼他將看到a.html,當他使用.MX他會看到b.html。但我告訴Site.objects .get_current()函數給我只有一個ID是否使用.com或.mx,所以我無法通過網站定義模板。

所以,請建議我要想辦法讓動態網站ID或有與我可以通過網站

回答

2

定義模板的另一種方式這不正是站點框架是如何工作的。要區分使用站點框架的站點,每個站點都必須有自己的設置模塊(因爲這是您設置SITE_ID的地方)。

您正在尋找的是從請求中獲取當前網站的方法。您可以使用RequestSite對象是:

from django.contrib.sites.models import RequestSite  
site_name = RequestSite(request).domain 

還有django-dynamicsites它做同樣的事情有幾個羣衆演員(重定向,模板/網址分配機制,......)

+0

夾層實現動態網站的加載,它放棄使用SITE_ID,所以這個答案有點誤導。 看看這個文檔:http://mezzanine.jupo.org/docs/deployment.html#multiple-sites-and-multi-tenancy –

+0

也看看'mezzanine.utils.sites。 current_site_id',它提供對當前正在訪問的站點ID的訪問。 –