【Django】first()方法

first():
返回queryset中匹配到的第一个对象,如果没有匹配到对象则为None,如果queryset没有定义排序,则按主键自动排序。

all[0]:
与first不同,如果没有匹配到,会报IndexError错误。

first()是一个很方便的代码,相当于下面的代码:

try:
    p = Article.objects.order_by('title', 'pub_date')[0]
except IndexError:
    p = None

 


first源码为:

   
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

 


last()返回最后一个,同first()

posted @ 2022-07-13 11:19  王广元  阅读(640)  评论(0编辑  收藏  举报
分享到: