我有一种奇怪的行为,我不知道为什么会这样。
我有一个带有延迟字段的简单queryset,例如Person.objects.filter(id=4).defer('phone')
,然后我有一个测试来证明这一点:
with self.assertNumQueries(2):
p = Person.objects.filter(id=4).defer('phone').first() # 1 query
p.phone # 1 query
它失败了,因为它似乎在该块上运行了三个查询:过滤时的第一个查询,以及来自p.phone
语句(selectphonefrom…)的另外两个重复查询
有人知道为什么会这样吗
only()
发生,它是defer()
的对应物李>
我无法复制,这和你的案子有关。我用通过的默认Django用户编写了这个测试用例。如果您需要更好的答案,请提供更多信息
相关问题 更多 >
编程相关推荐