在Django测试中,当分配给变量时有空的queryset,但在调试期间在控制台中打印时不为空

2024-03-28 17:06:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调试Django(1.11.8)测试并观察奇怪的行为,当在调试器中停止并切换到Ipython控制台输入时:

Model.objects.all()

返回非空Queryset。但是,当相同的表达式分配给变量时,例如:

^{pr2}$

那么obj_qs是空的查询集。我认为这两种说法的结果是一样的。我是否遗漏了一些重要的测试设置?我使用setUpTestData()setUp()方法为测试初始化对象。在


Tags: django方法objmodelobjects表达式ipythonsetup
1条回答
网友
1楼 · 发布于 2024-03-28 17:06:51

这种效果的简短解释是查询集是惰性的。在代码中对Queryset求值之前,我检查了它,这就是为什么在调试期间观察到空的queryset的原因——向前走几步,直到实际使用Queryset的行,证明一切正常。在

相关问题 更多 >