Fixed #4731 -- Changed management.setup_environ() so that it no longer assumes

the settings module is called "settings". Patch from SmileyChris.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@5696 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2007-07-14 14:47:14 +00:00
parent b8eee39e78
commit a9a04ca8f6
1 changed files with 3 additions and 2 deletions

View File

@ -1713,14 +1713,15 @@ def setup_environ(settings_mod):
# Add this project to sys.path so that it's importable in the conventional # Add this project to sys.path so that it's importable in the conventional
# way. For example, if this file (manage.py) lives in a directory # way. For example, if this file (manage.py) lives in a directory
# "myproject", this code would add "/path/to/myproject" to sys.path. # "myproject", this code would add "/path/to/myproject" to sys.path.
project_directory = os.path.dirname(settings_mod.__file__) project_directory, settings_filename = os.path.split(settings_mod.__file__)
project_name = os.path.basename(project_directory) project_name = os.path.basename(project_directory)
settings_name = os.path.splitext(settings_filename)[0]
sys.path.append(os.path.join(project_directory, '..')) sys.path.append(os.path.join(project_directory, '..'))
project_module = __import__(project_name, {}, {}, ['']) project_module = __import__(project_name, {}, {}, [''])
sys.path.pop() sys.path.pop()
# Set DJANGO_SETTINGS_MODULE appropriately. # Set DJANGO_SETTINGS_MODULE appropriately.
os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % project_name os.environ['DJANGO_SETTINGS_MODULE'] = '%s.%s' % (project_name, settings_name)
return project_directory return project_directory
def execute_manager(settings_mod, argv=None): def execute_manager(settings_mod, argv=None):