Python django模型中的订单数量与聚合数量

Python django模型中的订单数量与聚合数量,python,django,sql-order-by,aggregate,Python,Django,Sql Order By,Aggregate,假设我有一个名为Orders的模型,它有一个字段“date”作为一个日期字段,索引为True 给定一个日期,我想在订单中找到与该日期最近的记录 我可以写: prev_orders = Orders.objects.filter(date__lte=date).order_by('-date') last_order = prev_orders[0] 或: 哪一个更快?有没有其他理由选择一个而不是另一个 Orders.objects.filter(date__lte=date).order_by

假设我有一个名为Orders的模型,它有一个字段“date”作为一个日期字段,索引为True

给定一个日期,我想在订单中找到与该日期最近的记录

我可以写:

prev_orders = Orders.objects.filter(date__lte=date).order_by('-date')
last_order = prev_orders[0]
或:

哪一个更快?有没有其他理由选择一个而不是另一个

Orders.objects.filter(date__lte=date).order_by('-date')[0]
显然是最快的一种,在后一种情况下,你需要计算两次,计算的东西比你需要的多

第一个已经足够好了

prev_orders = Orders.objects.filter(date__lte=date).order_by('-date').first() 
first()。若您试图通过索引
[0]
从空queryset获取元素,Python应该会引发一个错误

prev_orders = Orders.objects.filter(date__lte=date).order_by('-date').first()