Django - Varias tablas unidas por claves foráneas
Es muy común que cuando trabajamos con una base de datos relacional acabemos teniendo muchas tablas que se relacionan unas con otras a través de claves foráneas (foreign key).
Por ejemplo: Puesto -> Producto -> Reserva
class Puesto(models.Model):
nombre = models.CharField()
propietario = models.TextField()
class Producto(models.Model):
puesto = models.ForeignKey(Puesto)
codigo = models.IntegerField()
descripcion = models.TextField()
class Reserva(models.Model):
producto = models.ForeignKey(Producto)
cliente = models.CharField()
fecha = models.DateField()
Pongamos que tenemos el nombre de un propietario, y este se llama Juan. La pregunta es ¿como puedo tener todas sus Reservas? Django nos lo hace muy sencillo.
misReservas = Reserva.objects.filter(producto__puesto__propietario='Juan')
Y ya esta. Si queremos ver todos los clientes.
misReservas = Reserva.objects.filter(producto__puesto__propietario='Juan')
for reserva in misReservas:
print(reserva.cliente)
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
¿Me invitas a un café?
Puedes usar el terminal.
ssh customer@andros.dev -p 5555