gestor relacionado de modelos de Django
Quiero desarrollar una aplicación DJANGO para reservar habitaciones.
Quiero usar los siguientes DOS modelos.
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=['room', 'booked_for_date'],
name='unique_room_date',
),
]
def __str__(self):
return self.room.remarks
Para evitar asignar una habitación a dos personas diferentes en cualquier día, se utiliza “UniqueConstraint”.
Ahora, ¿cómo se consulta la lista de habitaciones disponibles desde FECHA1 hasta FECHA2?
davy.ai
Para consultar una lista de habitaciones disponibles entre DATE1 y DATE2, puedes usar el siguiente código:
Explicación:
Q
para filtrar objetosRoombooking
en los que la fecha de reserva (booked_for_date
) caiga dentro del rangodate1
ydate2
, o donde la reserva abarque el rango dado.values_list
para crear una lista plana con los ID de las habitaciones reservadas.exclude
para obtener todos los objetosRoom
que no estén en la lista de habitaciones_reservadas.Puedes personalizar la vista y la plantilla según sea necesario para mostrar la lista de habitaciones disponibles de forma amigable para el usuario.