3
我剛從django開始。我的模型非常簡單,包含一個時間戳和一個值(溫度,每分鐘更新一次)。我想檢索過去7天內每天的最大值。django - 在幾個時間段內獲得最大值
我需要查詢7次還是有「快捷方式」?
我剛從django開始。我的模型非常簡單,包含一個時間戳和一個值(溫度,每分鐘更新一次)。我想檢索過去7天內每天的最大值。django - 在幾個時間段內獲得最大值
我需要查詢7次還是有「快捷方式」?
您可以使用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'))
感謝alecxe,我只是去嘗試。該查詢的結果包含日期時間對象,但是如何訪問最大值? – 32smooth
@ 32smooth我編輯了答案,試試看。 – alecxe
現在我收到一個錯誤信息:「FieldError:無法將關鍵字'max_temperature'解析爲字段。選項爲:id,temperature,timestamp」 – 32smooth