Django вычисляет общее количество часов из поля данных

У меня есть модель, которая выглядит примерно так, как показано ниже, в которой есть поле под названием datetime. В этом поле хранится запись даты и времени. Я хочу вычислить общее количество часов в месяц и неделю. Мне нужно руководство, как это сделать.

class Clockin_Transaction(models.Model):
    id = models.AutoField(db_column='id', primary_key=True)
    clockinusers = models.ForeignKey(Clockin_Users, on_delete=models.CASCADE)
    lid = models.IntegerField(db_column='LID', null=True, default=0)
    userid = models.IntegerField(db_column='UserID')
    temid = models.IntegerField(db_column='TemID')
    datetime = models.DateTimeField(db_column='DateTime', help_text='eg:2021-07-21')
    inout = models.IntegerField(db_column='InOut') 
    
    def __unicode__(self):
        return self.clockinusers.name
enter image description here

Вы можете использовать что-то похожее на это:

from datetime import datetime


end_date = datetime.today()
start_date = end_date - timedelta(days=7)



user = Clockin_Users.objects.filter(...)



transactions = Clockin_Transaction.objects.filter(
            clockinusers=user,
            datetime__range=[start_date, end_date],
        ).order_by('-datetime')

total = 0
for tr1, tr2 in zip(transactions, transactions[1:]):  # take every 2 consecutive transactions
    total += tr1.datetime - tr2.datetime

total = total / 3600  # convert from seconds to hours


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