use*_*652 85 django django-models django-orm
Django自动创建一个id字段作为主键.
现在我需要通过此id获取对象.
object = Class.objects.filter()
Run Code Online (Sandbox Code Playgroud)
怎么写这个过滤器?
iri*_*ent 152
如果你想获得一个对象,使用get()
更直接:
obj = Class.objects.get(pk=this_object_id)
Run Code Online (Sandbox Code Playgroud)
Luc*_*iva 13
我来到这里是为了同样的问题,但原因不同:
Class.objects.get(id=1)
Run Code Online (Sandbox Code Playgroud)
此代码引发了ImportError异常.令我困惑的是,下面的代码执行正常,并按预期返回结果集:
Class.objects.all()
Run Code Online (Sandbox Code Playgroud)
该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
Run Code Online (Sandbox Code Playgroud)
阅读Django中的代码loading.py
,我得出结论,settings.py
我的应用程序包含了我的Class
模型定义.我所要做的就是纠正应用程序的路径,并且get()
方法执行得很好.
这是我settings.py
的纠正路径:
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
# ...
'mywebproject.myapp',
Run Code Online (Sandbox Code Playgroud)
)
所有的混乱都是因为我使用Django的ORM作为独立的,所以命名空间必须反映出来.
归档时间: |
|
查看次数: |
99184 次 |
最近记录: |