Как Django обрабатывает импорт приложений?
Я хотел бы узнать, как работает импорт в Django. Например, в этом коде:
# in some_app/views.py
from another_app.models import UserModel
# another_app is another app of the same project
существует оператор импорта, который импортирует UserModel
из models.py
в another_app
(другое приложение того же проекта).
Мне просто интересно, как Django обрабатывает этот импорт, потому что обычная структура каталогов проекта Django выглядит следующим образом:
.
├── another_app
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── some_app
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── some_project
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
some_app
и another_app
- это отдельные каталоги.
Я хочу знать, как работает импорт, потому что я хочу найти обходной путь для одного из моих проектов, которые имеют отдельные каталоги, но требуют функций друг друга.
Если вы зарегистрируете имя приложения в установленном приложении в настройках django, вы сможете легко справиться с большинством миграций и других вещей, в противном случае вы можете просто ответвиться от папки с именем приложения. Я рекомендую сделать отдельный каталог с именем app, и вы можете поместить все ваши приложения в app director, таким образом, каталог приложений и каталог проекта будут легко разделены, и ваш импорт также будет простым
Вы можете импортировать таким образом после окончания работ
from app.some_new_app_name.models import MyModel
from app.some_new_app_name_2.models import MyModel2