Как правильно посчитать дату и время бронирования чтобы не выходило ошибки hour must be in 0..23

class Reservation(models.Model):
    computer_club = models.ForeignKey('clubs.Club', models.CASCADE, related_name='club_reservation', null=True)
    seats = models.ForeignKey('clubs.Table', models.CASCADE, related_name='seats_reservation', null=True)
    owner = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='owner_reservation', null=True)
    time = models.DateTimeField('Введите время бронирования')
    time1 = models.DateTimeField('Время окончания бронирования', blank=True)
    using_time = models.PositiveSmallIntegerField('Введите на сколько часов вы садитесь')

    class Meta:
        verbose_name = 'Бронирование'
        verbose_name_plural = 'Бронирование'
    
    def __str__(self):
        return f'{self.seats} {self.time} {self.using_time} {self.time1} {self.owner}'

    def save(self):
        time = self.time
        time = time.replace(hour=time.hour + self.using_time)
        self.time1 = time
        super(Reservation, self).save()

Ответы (1 шт):

Автор решения: Za Ars

Используйте timedelta

from datetime import timedelta

...
time += timedelta(hours=self.using_time)
→ Ссылка