Как импортировать класс python в случае django

почему мы импортируем именно так. from django.db.models import Model, Класс Model находится внутри base.py, а не models.

ожидая, что из django.db.models.base import Model, почему модуль base опущен. django/db/models/base.py - это структура

Он реэкспортирован в __init__.py [GitHub], действительно:

from django.db.models.base import DEFERRED, Model  #isort:skip

# …

__all__ = aggregates_all + constraints_all + enums_all + fields_all + indexes_all
__all__ += [
     # …
     "Model",
     # …
]

поэтому вы можете импортировать его как из модуля django.db.models.base, так и из модуля django.db.models: он ссылается на один и тот же класс.

В реэкспортах обычно группируются некоторые часто используемые классы и функции, чтобы сделать их более доступными.

Вернуться на верх