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
Вы можете посмотреть на официальную документацию