Opened 14 years ago

Last modified 11 years ago

#12231 closed

The project path is incorrectly build, it wipe the namespace — at Version 1

Reported by: mleduc Owned by: nobody
Component: Core (Other) Version: dev
Severity: Normal Keywords: package
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description (last modified by Alex Gaynor)

If by example your django is in an egg like

my.site.project

If you call the django core execution manager with:

mod = __import__('my.site.project')
django.core.management.execute_manager(mod)

Your project will not be found cause the django core is declaring the main DJANGO_SETTINGS_MODULE with:

django.core.management.init:

...
project_directory, settings_filename = os.path.split(p)
if project_directory == os.curdir or not project_directory:
   project_directory = os.getcwd()
project_name = os.path.basename(project_directory)
...
os.environ['DJANGO_SETTINGS_MODULE = '%s.%s' % (project_name, settings_name)
...

The project_name variable represent only the first level of the project egg. It could not work with a multilevel package and we now have to use the variable 'original_settings_path' which is just optional.

The solution maybe to use the special package variable of the settings_mod module.

I attach a patch with this ticket whick correct this problem.

Change History (2)

by mleduc, 14 years ago

Attachment: management.patch added

django.core.management.init.py patch

comment:1 by Alex Gaynor, 14 years ago

Description: modified (diff)

Please use preview.

Note: See TracTickets for help on using tickets.
Back to Top