2012-02-29 63 views

回答

4

您應該爲每個客戶端創建一個「客戶端」文件夾和一個子目錄。在每個子目錄中,創建一個site_settings.py文件如:

import os.path 

# import global settings 
from settings import * 

# this is barely just the name of the client dir, you might want to use that 
SITE_NAME = __file__.split('/')[-2] 
# this is the directory of the client website 
CLIENT_ROOT = os.path.abspath(os.path.dirname(__file__)) 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.contrib.gis.db.backends.postgis', 
     'NAME': SITE_NAME, 
     'USER': SITE_NAME, 
     'PASSWORD': 'some random password', 
    } 
} 

# you might want this too so that each client have his own MEDIA_ROOT 
MEDIA_ROOT = os.path.join(CLIENT_ROOT, 'upload') 

那就不要忘記使用--settings開關管理命令。例如:

./manage.py syncdb --settings=clients.demo.site_settings 

不要忘記,每個客戶都需要有自己的額外的東西。例如,如果您使用的草垛與嗖,你需要添加這一點,以便它不會弄混客戶端之間:

HAYSTACK_WHOOSH_PATH = os.path.join(CLIENT_ROOT, 'whoosh') 

或者用的Django zstask:

ZTASKD_URL = 'ipc:///tmp/%s_ztask.sock' % SITE_NAME 

或用JohnnyCache :

JOHNNY_MIDDLEWARE_KEY_PREFIX=SITE_NAME 
+0

非常感謝你的回答:)。我也有關於使用ztaskd提供答案的後臺任務的問題。我現在正在使用芹菜。有沒有解決方案?還請告訴我哪個更喜歡芹菜或ztaskd? – thelinuxer 2012-02-29 14:14:03

+1

如果使用djkombu進行傳輸,則消息通過數據庫傳遞,不應該有衝突。但我不知道芹菜那麼好... – jpic 2012-02-29 14:15:17

+2

我沒有回答:首先我嘗試芹菜,它運作良好。但後來我嘗試了django-ztask,除了它更簡單 - 它的安裝速度更快,所需的護理更少,對基本需求也幾乎相同。 – jpic 2012-02-29 14:33:46

相關問題