Как это можно оптимизировать? Берем минимальную и максимальную дату и выбираем минимальный и максимальный год далее генерим года и месяцы, и выбираем максимальную цену в каждом месяце. Как это можно на орме сделать оптимальней? Т.е в конце концов мне нужно
{
"2019": [
{
"month": 1,
"cost": 12.0
},
{
"month": 2,
"cost": 14.2
},
}
res = {}
min_year = Some.objects.values('timestamp').order_by('timestamp').first()['timestamp'].year
max_year = Some.objects.values('timestamp').order_by('timestamp').last()['timestamp'].year
for year in range(min_year, max_year + 1):
for month in range(1, 13):
qs = Some.objects.filter(
timestamp__year=year,
timestamp__month=month,
name=param['name']
).aggregate(Max('cost'))['cost__max']
if qs is not None:
if year not in res:
res[year] = []
res[year].append({'month': month, 'cost': qs})