我目前有一个运行Django == 2.0的django应用程序。
之前我没有遇到过这个问题,但昨天当我运行一些代码时出现了错误
from home.models import Notification
ImportError: cannot import name 'Notification'
这是来自meetings/models.py
,这是一个与mange.py
我的应用注册如下
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home',
'meetings',
]
如果我简单地导入主页然后将其打印出来,我会看到
<module 'home' from '<relative_path>/home/__init__.py'>
但如果我尝试这样的话
from django.apps import apps
print(apps.get_models())
我收到错误django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
之后,我尝试通过python manage.py shell
测试同样的事情,我得到了完全不同的结果。
apps.get_models()
返回了我期望看到的所有模型以及数据库中的模型。
>>> apps.get_app_config('home').models['notification']
返回<class 'home.models.Notification'>
我试图找出为什么我无法在会议模型中导入通知以及为什么我在shell中运行这些命令时会得到不同的结果。
我还有django频道和存储作为已安装的应用。