Django - Varias tablas unidas por claves foráneas

1 minuto

Django

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)

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...