作者:ccsv0601604 | 来源:互联网 | 2023-08-30 18:12
first():返回queryset中匹配到的第一个对象,如果没有匹配到对象则为None,如果queryset没有定义排序,则按主键自动排序。all[0]:与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()