Как я могу установить подпапки в django? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть два приложения в одном проекте, и я решил переместить эти два приложения в apps родительский каталог. Моя текущая структура:

project
  - app1 
  - app2
  - project
       - __init__.py
       - asgi.py
       - settings.py
       - urls.py
       - wsgi.py

Новая структура, которую я пытаюсь создать,

project
  - templates
  - static
  - apps
       - app1 
       - app2
  - project
       - __init__.py
       - asgi.py
       - settings.py
       - urls.py
       - wsgi.py

Следуя этому, Как сохранить все мои django приложения в указанных c папка Я отредактировал свой settings.py

from os.path import abspath, basename, dirname, join
BASE_DIR = dirname(dirname(abspath(__file)))
PROJECT_ROOT = dirname(__file__)
sys.path.insert(0, join(PROJECT_ROOT, 'apps'))

INSTALLED_APPS = [
    ....
    'apps.app1.apps.App1Config',
    'apps.app2.apps.App2Config',
]

Я получил сообщение об ошибке ModuleNOtFoundError: No module named 'app1' Где я должен отредактировать, чтобы исправить эту проблему?

1 Ответ

1 голос
/ 12 марта 2020

для достижения этого формата

project
  - templates
  - static
  - apps
       - app1 
       - app2
  - project
       - __init__.py
       - asgi.py
       - settings.py
       - urls.py
       - wsgi.py

в папке settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

и в папке apps создайте новый файл __init__.py

и затем, вернувшись к settings.py, INSTALLED_APPS

INSTALLED_APPS = [
    ... # other apps

    'apps.app1',
    'apps.app2',

]

, вы можете выбрать один мой проект, который использует этот формат здесь https://github.com/michaelhenry/localizr

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...