Импорт модели приложения с несколькими приложениями Django Ошибка ModuleNotFoundError: Нет модуля с именем 'apps'
У меня проблема с импортом модели из другого приложения в том же проекте Django.
Мои файлы структурированы следующим образом:
/project
/apps
__init__.py
/app1
__init__.py
models.py
...
/non_app_dir
__init__.py
work.py
...
/core
__init.py
settings.py
urls.py
wsgi.py
...
manage.py
В моем файле settings.py у меня есть следующее:
INSTALLED_APPS = [
...
'apps.app1',
'apps.non_app_dir',
...
]
Ок, итак, в моем work.py (из не_app_dir) я пытаюсь импортировать модель из models.py (из app1), как показано ниже:
from apps.app1.models import MyModel
def testModel():
test = MyModel.objects.all()
print(test)
но я получаю следующую ошибку
ModuleNotFoundError: No module named 'apps'
Есть ли решения для этого?
Create two seperate apps using following structure.
/project
/app1
__init__.py
models.py
/non_app_dir
__init__.py
work.py
/core
__init.py
settings.py
urls.py
wsgi.py
manage.py
Inside, core urls.py include urls,
path('path1/', include('app1.urls'),
path('path2/', include('non_app_dir.urls')
В вашем app1/apps.py обязательно добавьте name = 'apps.app1'
в класс app config.
Например:
from django.apps import AppConfig
class App1Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.app1'