Как сделать модель недоступной для определенных дат и часов в Django?

Итак, я создаю проект по аренде комнат. Аренда не на весь день, а только на 2 часа. У меня будет несколько компаний-арендаторов, каждая из которых имеет несколько комнат для аренды с разной вместимостью. Итак, мой вопрос: если комната будет арендована, скажем, 25/03/2022 20:00 (то есть она будет недоступна до 22:00, а также недоступна за 2 часа до этого), я хочу, чтобы комната все еще была видна на сайте, потому что кто-то может захотеть арендовать ее в другой день или в тот же день в другой час. Как сделать так, чтобы именно эта комната была недоступна только в этот день и в эти часы? Если я сделаю строку is_available в модели, она будет переключаться на False всякий раз, когда кто-то арендует ее, но я хочу, чтобы она была доступна во все другие дни и часы. Вот модели:

class Owner(models.Model):
    name = models.CharField(max_length=100)
    address = models.TextField()
    phone = models.PositiveIntegerField()

class Room(models.Model):
    number = models.CharField(max_length=100)
    owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
    capacity = models.PositiveIntegerField()
    is_available = models.BooleanField(default=True)

class reservation(models.Model):
    room_number = models.ForeignKey(Room)
    guest_name = models.CharField(max_length=200)
    guests = models.PositiveIntegerField()
    date_reserved = models.DateTimeField()
Вернуться на верх