По причинам полной глупости я хочу полностью изменить структуру файловой системы моего проекта Django.В частности, я хочу переместить реальные приложения, составляющие сайт, в отдельные папки из файлов admin / settings.Например, вместо:
django/
site/
__init__.py
manage.py
settings.py
urls.py
home/
__init__.py
views.py
models.py
template.html
page/
__init__.py
views.py
models.py
template.html
media/
__init__.py
styles.css
picture1.jpg
picture2.jpg
Я хочу, чтобы оно было:
django/
site/
__init__.py
manage.py
settings.py
urls.py
home/
__init__.py
views.py
models.py
template.html
page/
__init__.py
views.py
models.py
template.html
media/
__init__.py
styles.css
picture1.jpg
picture2.jpg
, потому что я считаю, что N-арное дерево моей файловой системы должно быть максимально сбалансированным, минимизируя еговысота, чтобы гарантировать время поиска O (lgn) для любого конкретного файла !!!
Мне удалось настроить мой django.wsgi таким образом, чтобы все мои "внешние" папки были частью системного пути при запуске Python,поэтому импорт работает отлично.Точно так же я сделал os.chdir (), чтобы сделать загрузку из файловой системы тоже идеально.URL-сопоставитель также отлично работает, направляя входящие запросы к этим «внешним» модулям для обработки.
Однако мне не удалось получить файл manage.py для загрузки этих «внешних» модулей, возможно потому, что он не 'не запускается через django.wsgi и, следовательно, модификации sys.path к ним не применяются.Следовательно, когда я помещаю эти внешние папки в INSTALLED_APPS (например, «home», а не «site.home»), он не может их найти, давая мне:
Error: No module named home
Всякий раз, когда я пытаюсь python manage.py syncdb,Я попытался установить переменную окружения PYTHONPATH в / home / django в надежде, что это приведет к тому, что любой скрипт Python выполнит проверку этой папки и загрузит мои «внешние» модули, но это тоже не удалось.Есть ли что-нибудь еще, что я могу сделать, чтобы manage.py проверил эти внешние папки при загрузке?