django вычисляет общий час по полю данных

#django

Вопрос:

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

 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 

введите описание изображения здесь

Ответ №1:

Йо мог бы использовать что-то подобное этому:

 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


 

Комментарии:

1. Спасибо, я попробовал, но у меня возникла ошибка: DateTimeField Clockin_Transaction. дата и время получили наивное время (2021-10-06 23:14:36.692913), пока активна поддержка часовых поясов.