Как 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
Вернуться на верх