When you add a 'Django App' to INSTALLED_APPS
in your settings.py
file, you're telling Django that there exists an importable python module with that name on your "python path". You can view your python path by viewing the contents of the list stored at sys.path
.
Whenever Python (and in this case Django) attempts to import a module it checks each of the directories listed in sys.path
in order, when it finds a module matching the given name it stops.
The solution to your problem then is too place your customized Django Apps, e.g., the Satchmo product
module, into a location in your python path which will be checked before the "real" Satchmo product
module.
Because I don't know how you have your directory structure laid out I'm basically making a guess here, but in your case, it sounds like you have the Satchmo apps living somewhere like /satchmo/apps/
and your project at /my_custom_path/my_project/
. In which case you might want to add your customized product
module to /my_custom_path/my_project/product/
. Because the path at which your Django settings.py
file lives is always checked first, that should mean that your customized product
module will be found first and imported instead of the built in Satchmo one.
FYI: To check and see the order in which your Satchmo installation is checking directories for modules run python manage.py shell
and then in the prompt do import sys; print sys.path
.