Я попал сюда по той же проблеме, но по другой причине:
Class.objects.get(id=1)
Этот код вызывал исключение ImportError. Что меня смущало, так это то, что приведенный ниже код выполнялся нормально и возвращал набор результатов, как и ожидалось:
Class.objects.all()
Хвост трассировки для метода get()
:
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
Читая код внутри loading.py
Джанго, я пришел к выводу, что у моего settings.py
был неверный путь к моему приложению, которое содержит мое определение модели Class
. Все, что мне нужно было сделать, это исправить путь к приложению, и метод get()
выполнялся нормально.
Вот мой settings.py
с исправленным путем:
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
# ...
'mywebproject.myapp',
) * * тысяча двадцать-один
Вся путаница была вызвана тем, что я использую ORM Джанго в качестве отдельного, поэтому пространство имен должно было это отражать.