ValueError: попытка относительного импорта за пределы пакета верхнего уровня при попытке импорта моделей из другого приложения в django

В моем проекте под названием electron у меня есть два приложения django: первое api и второе elec_meter. Каталоги организованы следующим образом:

electron /
   api/
      views.py
      ...
   elec_meter/
      models.py
      ...

В файле api / views.py я хочу импортировать elec_meter / models.py. Вот как я это делаю:

from ..elec_meter.models import *

Но я получаю следующее сообщение об ошибке:

ValueError: attempted relative import beyond top-level package

или

from electron.elec_meter.models import *

В этом случае я получаю следующее сообщение об ошибке:

ModuleNotFoundError: No module named 'electron.elec_meter'

Вот картинка моего кода

Как я могу решить эту проблему?

Корневым путем Python является каталог electron, поэтому вы не можете работать с from electron.….

Вы можете импортировать объекты, импортируя его, начиная с имени app, а не project. Таким образом, это означает, что вы импортируете это с:

from elec_meter.models import Model1, Model2

Хотя вы можете делать импорт с подстановочными знаками, это часто считается антипаттерном, поскольку неясно что вы импортируете. Это означает, что он может установить ссылки, указывающие на объекты, экспортируемые модулем elec_meter.models, и таким образом переопределить исходные ссылки.

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