在调试模式下,查看确实返回了结果的QuerySet时,如何/在哪里可以看到调试器中的对象?我对要评估的代码不感兴趣(例如Class.objects.all()
等,但是更喜欢结构,例如:
- QuerySet
-- object_list
--- object[0]
--- object[1]
--- object[n]
谢谢!
编辑:
比方说,我正在调试器中查看QuerySet,我得到了一堆属性和相关对象,但似乎无法找到要查找的实际对象。如果我有一个类A,并且正在执行qs = A.objects.get.all()
,并且正在调试器中查看qs
的结构,则会得到很多不同的信息,但找不到A的实际对象/实例
答案 0 :(得分:2)
在内部, QuerySet 可以被构造,过滤,切片和传递,而无需实际访问数据库。
No database activity actually occurs until you do something to evaluate the queryset
。
这意味着,无论您调用 Class.objects.all()
,它都不会从数据库中获取实际实例(就像{ Python 中的{1}},
要评估所有对象,请执行以下操作
generators
上面的方法不建议用于生产/实时代码,因为将所有实例存储在all_instance = [i for i in Class.objects.all()]
答案 1 :(得分:0)
假设最好的方法是添加到手表list(Class.objects.all())