2024-03-28 17:06:51 发布
网友
我正在调试Django(1.11.8)测试并观察奇怪的行为,当在调试器中停止并切换到Ipython控制台输入时:
Ipython
Model.objects.all()
返回非空Queryset。但是,当相同的表达式分配给变量时,例如:
Queryset
那么obj_qs是空的查询集。我认为这两种说法的结果是一样的。我是否遗漏了一些重要的测试设置?我使用setUpTestData()和setUp()方法为测试初始化对象。在
obj_qs
setUpTestData()
setUp()
这种效果的简短解释是查询集是惰性的。在代码中对Queryset求值之前,我检查了它,这就是为什么在调试期间观察到空的queryset的原因——向前走几步,直到实际使用Queryset的行,证明一切正常。在
这种效果的简短解释是查询集是惰性的。在代码中对
Queryset
求值之前,我检查了它,这就是为什么在调试期间观察到空的queryset的原因——向前走几步,直到实际使用Queryset
的行,证明一切正常。在相关问题 更多 >
编程相关推荐