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)
{{ comments.length }} comentarios