Django models related manager

Я хочу разработать приложение DJANGO для бронирования номеров. Я хочу использовать следующие ДВЕ модели.

class Room(models.Model):  
    room_no = models.IntegerField()
    remarks = models.CharField(max_length=100)
    
    def __str__(self):
        return self.remarks

class Roombooking(models.Model):    
    room = models.ForeignKey(Room, related_name= 'roombookingforroom', on_delete=models.CASCADE)
    booked_for_date = models.DateField(blank=True, null=True)
    booked_by = models.TextField(max_length=1000, default='')
    remarks = models.CharField(max_length=100,)

    class Meta:
        constraints = [
            models.UniqueConstraint(
                fields=["suit", "booked_for_date"],
                name="unique_room_date",
            ),
        ]

    def __str__(self):
        return self.room.remarks

Чтобы избежать назначения одной комнаты двум разным людям в любой день, используется " UniqueConstraint".

Теперь, как запросить список комнат, которые были свободны с DATE1 по DATE2

Вы можете просто отфильтровать бронирование номеров по дате

gte = больше или равно

lte = меньше или равно

query = Roombooking.objects.filter(booked_for_date__gte=DATE1, booked_for_date__lte=DATE2)

* Обратите внимание, что DATE1 и DATE2 должны быть типа datetime

Вы можете посмотреть на официальную документацию

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