Есть несколько способов сделать это, самый простой - импортировать еще один файл (обычно local_settings.py
) и переопределить основные настройки (производственные настройки находятся в основных settings.py
, локальные изменения в local_settings.py
)
Код:
try:
from local_settings import *
except ImportError:
pass
другой вариант - сохранить несколько отдельных файлов конфигурации, таких как settings_prod.py
, settings_dev.py
и т. Д., Каждый из которых имеет свой собственный набор параметров конфигурации, но это кошмар для синхронизации. однако перемещение частей настроек в отдельные файлы (например, conf/db.py
, conf/app_data.py
, conf/locale.py
, conf/logging.py
(и т. д.) и последующий импорт их в файлы настроек очень помогают.
эти настройки используются путем указания опции -s
или --settings
с именем модуля в качестве параметра (без части .py).
Я видел расширение второго варианта, этот набор настроек выбирался автоматически в зависимости от переменных среды / пути / имени машины. таким образом, был один settings.py
с кодом для выбора настроек для загрузки. эта опция хороша, поэтому вам не нужно указывать -s
все время.
последний, но не менее важный - использовать django-admin.py
вместо manage.py
. Разница между этими двумя файлами заключается в том, что manage.py
устанавливает переменную окружения DJANGO_SETTINGS_MODULE
для конкретного проекта. но если у вас будет, например, virtualenv для вашей разработки, вы можете установить локальный DJANGO_SETTINGS_MODULE
, чтобы он указывал на правильный файл настроек, а затем использовать django-admin.py
без необходимости указывать config.
переключение между проектами тоже должно быть легким.
Я уверен, что есть еще несколько вариантов, но, по крайней мере, вы можете видеть, что там есть:)