Django: аргумент int() должен быть строкой, байтоподобным объектом или числом, а не 'datetime.timedelta'

Я хотел бы агрегировать с набором запросов и сравнить разницу в минутах между 2 datetime в Django. И я хотел бы получить результат в минутах (округленный).

opened_at и created_at являются полями DateTimeField.

@action(detail=False, methods=["get"], url_path="person-click-speed")
def person_click_speed(self, request):
    accounts = get_account_ids(request)

    queryset = models.CoursePerson.objects.filter(
        account__in=accounts,
    )

    data = queryset.aggregate(
        less_5_mint_count=Count(
            "uid",
        average_clic_time=Avg(F('emails_person__opened_at') - F('emails_person__created_at')),
    )

    res = {
        'less_5_mint_count': data['less_5_mint_count'],
        'average_clic_time': round(data['average_clic_time'].total_seconds() / 60 if data['average_clic_time'] else 0),
    }

    return Response(data=res)

Этот код работает хорошо, но мне нужно сделать это непосредственно в агрегате (average_clic_time).

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