агрегация Джанго: сумма, затем средняя

Использование ORM annotate () и / или aggregate () в django: я хочу подвести итоги на основе одного поля категории, а затем усреднить значения категорий по дате. Я попытался сделать это с помощью двух операторов annotate (), но получил FieldError.

Я делаю это:

queryset1 = self.data.values('date', 'category').annotate(sum_for_field=Sum('category'))

Который выводит объект ValuesQuerySet с такими вещами (например, сумма для каждого значения категории):

[{'category': 'apples', 'date': '2015-10-12', sum_for_field=2000},
 {'category': 'carrots', 'date': '2015-10-12', sum_for_field=5000},
 {'category': 'apples', 'date': '2015-10-13', sum_for_field=3000},
 {'category': 'carrots', 'date': '2015-10-13', sum_for_field=6000}, ...
]

Затем я хочу усреднить поле sum_for_field для каждой даты, чтобы вывести что-то вроде:

[ {'date': '2015-10-12', avg_final: 3500},
{'date': '2015-10-13', avg_final: 4500}, ...
]

Я пытался сделать это:

queryset2 = queryset1.values('date', 'sum_for_field')
result = queryset2.annotate(avg_final=Avg('sum_for_field'))

Но я получил эту FieldError:

FieldError: FieldError: Cannot compute Avg('sum_for_field'): 'sum_for_field' is an aggregate

Ответы на вопрос(2)

Ваш ответ на вопрос