Django 管理器first() vs Model.objects.all()[:1]

2024-04-16

我想知道是否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(使用前将#替换为@)

Django 管理器first() vs Model.objects.all()[:1] 的相关文章

随机推荐