我刚开始使用django。我的模型非常简单,包含时间戳和值(温度,每分钟更新)。我想检索过去7天中每天的最大值。
我是否需要查询7次,或者是否有快捷方式'?
答案 0 :(得分:5)
您可以使用annotate()
和extra()
:
start_date = date.today() - timedelta(days=7)
MyModel.objects.filter(timestamp__gte=start_date).extra(select={'day': connection.ops.date_trunc_sql('day', 'timestamp')}).values('day').annotate(max_temperature=Max('temperature'))