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

Вы можете использовать что-то похожее на это:
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