取任何给定的查询集,qs = QS.objects.filter(active=True)
我之间有区别吗:
if qs:
和
if qs.exists():
关于数据库上的负载等?
最佳答案
是的,有区别:
if qs
将使用 __nonzero__
QuerySet
的方法对象,它调用 _fetch_all
这将反过来实际执行一个完整的查询(无论如何我都是这样解释的)。 exists()
做一些更有效的事情,如 noted by Ewan .这就是为什么这种方法......存在。 所以,简而言之,使用
exists()
当您只需要检查是否存在时,因为这就是它的用途。
关于django - if 和 if exists() 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090635/