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)

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

No te sientas obligado a realizarme una donación, pero cada aportación me ayuda a mantener el sitio en activo para que continúe existiendo y me motiva a continuar creando nuevo contenido.

Comprame un café
Pulsa sobre la imagen
  • 1 café: Se mantiene el dominio durante 4 meses.
  • 2 cafés: Se liquida 1 mes del Servidor Web.
  • 3 cafés: Se paga 1 mes de Newsletter.

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...