Dev*_*ing 4 django django-models
当处于调试模式并查看确实返回结果的查询集时,如何/在哪里可以看到调试器中的对象?我对要评估的代码不感兴趣(例如Class.objects.all()等,但更喜欢结构,例如:
- QuerySet
-- object_list
--- object[0]
--- object[1]
--- object[n]
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:
假设我正在调试器中查看查询集,我得到了一堆属性和相关对象,但我似乎找不到我想要的实际对象。如果我有一个类 A 并且我正在执行qs = A.objects.get.all()并且正在查看调试器中的结构qs,我会得到一堆不同的项目,但找不到 A 的实际对象/实例。
在内部,可以构造、过滤、切片并通常传递QuerySet,而无需实际访问数据库。
No database activity actually occurs until you do something to evaluate the queryset。
这意味着,无论您调用什么Class.objects.all(),它都不会从数据库中获取实际实例(就像generators在Python中一样)
要评估所有对象,请执行以下操作,
all_instance = [i for i in Class.objects.all()]
Run Code Online (Sandbox Code Playgroud)
不建议将上述方法用于您的生产/实时代码,因为将所有实例存储在一个中太难看list
| 归档时间: |
|
| 查看次数: |
3512 次 |
| 最近记录: |