Added conf/project_template/manage.py, which is a light wrapper around django-admin.py that gets installed in each project with 'startproject'. It takes care of the PYTHONPATH and DJANGO_SETTINGS_MODULE business automatically.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1556 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
17108bc190
commit
28263d6675
|
@ -0,0 +1,10 @@
|
||||||
|
from django.core.management import execute_manager
|
||||||
|
try:
|
||||||
|
import settings # Assumed to be in the same directory.
|
||||||
|
except ImportError:
|
||||||
|
import sys
|
||||||
|
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
execute_manager(settings)
|
|
@ -960,3 +960,24 @@ def execute_from_command_line(action_mapping=DEFAULT_ACTION_MAPPING):
|
||||||
print '\n'.join(output)
|
print '\n'.join(output)
|
||||||
if action not in NO_SQL_TRANSACTION:
|
if action not in NO_SQL_TRANSACTION:
|
||||||
print "COMMIT;"
|
print "COMMIT;"
|
||||||
|
|
||||||
|
def execute_manager(settings_mod):
|
||||||
|
# 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
|
||||||
|
# "myproject", this code would add "/path/to/myproject" to sys.path.
|
||||||
|
project_directory = os.path.dirname(settings_mod.__file__)
|
||||||
|
project_name = os.path.basename(project_directory)
|
||||||
|
sys.path.append(os.path.join(project_directory, '..'))
|
||||||
|
project_module = __import__(project_name, '', '', [''])
|
||||||
|
sys.path.pop()
|
||||||
|
|
||||||
|
# Set DJANGO_SETTINGS_MODULE appropriately.
|
||||||
|
os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % project_name
|
||||||
|
|
||||||
|
# Remove the "startproject" command from the action_mapping, because that's
|
||||||
|
# a django-admin.py command, not a manage.py command.
|
||||||
|
action_mapping = DEFAULT_ACTION_MAPPING.copy()
|
||||||
|
del action_mapping['startproject']
|
||||||
|
|
||||||
|
# Run the django-admin.py command.
|
||||||
|
execute_from_command_line(action_mapping)
|
||||||
|
|
Loading…
Reference in New Issue