Django: Как вычислить среднюю продолжительность/время за дату?

У меня есть следующий QuerySet:

{'duration': datetime.timedelta(seconds=212), 'date': datetime.datetime(2022, 1, 17, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(seconds=9), 'date': datetime.datetime(2022, 1, 17, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(seconds=19), 'date': datetime.datetime(2022, 1, 17, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(seconds=20), 'date': datetime.datetime(2022, 1, 17, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(days=2, seconds=4681), 'date': datetime.datetime(2022, 2, 7, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(seconds=1114), 'date': datetime.datetime(2022, 2, 7, 0, 0, tzinfo=<UTC>), 'count': 1}
{'duration': datetime.timedelta(seconds=1683), 'date': datetime.datetime(2022, 2, 7, 0, 0, tzinfo=<UTC>), 'count': 1}

и хотел бы вычислить среднюю продолжительность для каждой даты, поэтому для вышеупомянутого QS я бы получил следующий результат:

Duration         Date
65               2022/01/17
60,092.67        2022/02/07

Я попытался применить функцию Count к дате, чтобы затем разделить продолжительность на общее количество дней, как показано ниже:

qs.annotate(week_total=Count('date'))

но это не сработало, поскольку сама дата является агрегатом, и я получаю эту ошибку:

FieldError: Cannot compute Count('date'): 'date' is an aggregate

После многих попыток у меня закончились идеи, и я буду благодарен за любые советы.

Вернуться на верх