Вы должны создать папку "клиенты" и подкаталог для каждого клиента.В каждом подкаталоге создайте файл 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
Не забывайте, что каждому клиенту потребуется иметь свой дополнительный материал.Например, если вы используете стог сена с whoosh, вам нужно добавить это, чтобы он не смешивался между клиентами:
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