我想知道是否first() https://docs.djangoproject.com/en/1.9/ref/models/querysets/#first是相同的限制查询集 https://docs.djangoproject.com/en/1.10/topics/db/queries/#limiting-querysets.
Is Model.objects.first()
与Model.objects.all()[:1]
速度?
你必须记住这一点first()
是相同的Model.objects.all()[0]
,所以我的想法是它们不一样,但是我不明白为什么我们有一个方便的方法first()
.
Model.objects.first()
返回一个实例或None
, while Model.objects.all()[:1]
返回查询集的一部分,其中包含零个或一个实例。这是first()
Django 1.10 的源代码:
def first(self):
"""
Returns the first object of a query, returns None if no match is found.
"""
objects = list((self if self.ordered else self.order_by('pk'))[:1])
if objects:
return objects[0]
return None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)