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)