Основная проблема заключается в том, что я разрабатываю некоторые Django, но на нескольких хостах (с коллегами), все с разными настройками. Я надеялся сделать что-то подобное в файле project / settings.py:
from platform import node
settings_files = { 'BMH.lan': 'settings_bmh.py", ... }
__import__( settings_files[ node() ] )
Это казалось простым решением (таким образом, элегантным), но я согласился бы, что оно имеет запах, и простота выходит из-под контроля, когда вам приходится использовать логику, подобную той, которую написал Джон Милликин (спасибо). Вот, по сути, решение, которое я выбрал:
from platform import node
from settings_global import *
n = node()
if n == 'BMH.lan':
from settings_bmh import *
# add your own, here...
else:
raise Exception("No host settings for '%s'. See settings.py." % node())
Что отлично подходит для наших целей.