检查查询是否返回任何结果的推荐方法是什么?
例子:检查Django中的空查询集
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
我想有这个检查的几种不同的方式,但我想知道有经验的Django的用户会怎么做。 在文档中的大多数例子只是忽略这里什么也没有找到的情况下...
这似乎在文档中也是首选,例如:https:// docs。djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower 2015-05-22 09:02:08
@Wtower如果过滤表达式没有命中任何记录或产生结果的“列表”,那么您引用的代码已经为合同提高了404有记录。那里的代码只会碰到一次数据库。如果他们使用'exist()'或者'count()'来检查是否有记录返回,那么他们会敲击数据库两次(一次检查,一次获取记录)。这是一个特定的情况。它不包含在*一般情况下*,知道一个查询是否会返回记录的首选方法是使用do'if queryset:...' – Louis 2015-11-03 16:26:22
@Louis我引用的代码只是它包含的一个示例一行'if not my_objects:'来证明他们是如何在文档中执行的。所有其他都完全不相关,所以我不明白你的观点。他们也可以提出一千个问题,这仍然是完全不相关的,因为这不是这个答案的重点,我明确表示我同意。 – Wtower 2015-11-04 08:47:13