2 ответов:
Если вы хотите получить объект, используя
get()более прост:obj = Class.objects.get(pk=this_object_id)
я попал сюда по той же проблеме, но по другой причине:
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чтение кода внутри Django's
loading.py, Я пришел к выводу, что мойsettings.pyбыл плохой путь к моему приложению, которое содержит мойClassмодель определение. Все, что мне нужно было сделать, это исправить путь к приложению иget()метод выполняется нормально.вот мой
settings.pyс исправленным путем:INSTALLED_APPS = ( 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', # ... 'mywebproject.myapp',)
вся путаница была вызвана тем, что я использую ORM Django как автономный, поэтому пространство имен должно было отражать это.
Comments