Python django模型中的订单数量与聚合数量
假设我有一个名为Orders的模型,它有一个字段“date”作为一个日期字段,索引为True 给定一个日期,我想在订单中找到与该日期最近的记录 我可以写: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
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()