Аннотация Django: Преобразование разницы во времени в целое число или десятичную дробь

Я пытаюсь суммировать часы, проведенные пользователем за день. Я хотел бы преобразовать это в целое число или десятичное (например, 2, 6,5) часов, чтобы легко построить график. Но результат нижеприведенного кода имеет такой формат HH:mm:ss. Кто-нибудь может помочь мне с этим?

day = Clocking.objects.filter(clockout__isnull=False, user=nid).annotate(date=TruncDate('clockin'))
      .values('date').annotate(total=Sum(F('clockout') - F('clockin'))).values('total')

Вот мой models.py

class Clocking(models.Model):
    user= models.ForeignKey('User', models.DO_NOTHING)
    clockin = models.DateTimeField()
    clockout = models.DateTimeField(null=True)

На основе Func с использованием sql-функций TIMEDIFF и затем TIME_TO_SEC, вернутся секунды:

day = Clocking.objects.filter(clockout__isnull=False, user=nid).annotate(date=TruncDate('clockin'))
      .values('date').annotate(
    total=Sum(
        Func(
            Func(
                F('clockout'),F('clockin'), function='TIMEDIFF'),
            function='TIME_TO_SEC')
        )).values('total')
Вернуться на верх