2012-10-11 37 views
2

我具有其中配置的移動部settings.py下面移動交換在Django中不起作用?

MIDDLEWARE_CLASSES = (
         'site_middleware.SetSiteFromHost', 
        ) 
SITE_ID = 1 

和site_middleware.py給出Django項目:

class SetSiteFromHost: 


    def process_request(self, request): 
     if mobileBrowser(request): 
      if request.GET.get('server', False): 

       request.session['server_mode'] = True 
       site = 1 
      elif request.session.get('server_mode') == True: 

       site = 1 
      else: 

       request.session['server_mode'] = False 
       site = 2 

     else: 
      site = 1 
     settings.SITE_ID = site 

錯誤沒有顯示,但開關不工作?

+0

什麼是*在這裏配置*輸入代碼? – iMom0

回答

2

來自文檔:Altering settings at runtime

您不應該在運行時更改應用程序中的設置。

​​

您應該分配給設置的唯一位置是在設置文件中。

我認爲最好的辦法是讓幾個設置文件:

文件base_settings.py

... all your settings for all sites ... 

文件first_site_settings.py

from base_settings import * 

SITE_ID = 1 

... other settings for this site ... 

文件second_site_settings.py

from base_settings import * 

SITE_ID = 2 

... other settings for this site ... 

和運行每個站點作爲一個單獨的djano過程:

$ python mysite/manage.py runserver --settings=mysite.first_site_settings 
$ python mysite/manage.py runserver --settings=mysite.second_site_settings 
+0

但存在同樣的問題。 –

+0

@SatheeshAlathiyur,剛發佈我的解決方案。 – defuz

+0

但它不可能我有兩個不同的模板一個用於手機和另一個在計算機上運行的單個網址。兩個settings.py不是一個有價值的解決方案,我認爲切換基於中間件的網站 –