我到达这里的原因是相同的问题,但是原因不同:
Class.objects.get(id=1)
此代码引发了ImportError异常。 让我感到困惑的是,下面的代码执行得很好,并返回了预期的结果集:
Class.objects.all()
settings.py方法的回溯尾巴:
File "django/db/models/loading.py", line 197, in get_models
self._populate()
File "django/db/models/loading.py", line 72, in _populate
self.load_app(app_name, True)
File "django/db/models/loading.py", line 94, in load_app
app_module = import_module(app_name)
File "django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named myapp
通过阅读Django settings.py中的代码,我得出结论,我的settings.py到我的应用程序的路径很不好,其中包含我的Class模型定义。 我所要做的就是纠正应用程序的路径,并执行get()方法。
这是我的settings.py,路径正确:
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
# ...
'mywebproject.myapp',
)
造成所有混乱的原因是,我将Django的ORM用作独立的,所以命名空间必须反映这一点。