Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/05/2012, 08:09
fedeim87
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Django: filtrar un queryset con otros querysets

Hola a todos, estoy desarrollando un sitio con Django y tengo un problema o mejor dicho una duda. Tengo estos 4 modelos:

Código Python:
Ver original
  1. class Involucrados (models.Model):
  2.     nombre = models.CharField(max_length=15)
  3.     apellido = models.CharField(max_length=15)
  4.     doc_num = models.CharField(max_length=11)
  5.     id_localidad = models.ForeignKey(Localidades)
  6.  
  7. class Expedientes (models.Model):
  8.     fecha_presentacion = models.DateField()
  9.     fecha_ultimo_mov = models.DateField()
  10.     id_localidad = models.ForeignKey(Localidades)
  11.     forma_presentacion = models.CharField(max_length=15, choices=FP)
  12.     involucrados = models.ManyToManyField(Involucrados, through='Expe_Invo')
  13.  
  14. class Expe_Invo (models.Model):
  15.     id_expediente = models.ForeignKey(Expedientes)
  16.     id_involucrado = models.ForeignKey(Involucrados)
  17.     categoria = models.CharField(max_length=2, choices=CAT)
  18.     repre_entidad = models.CharField(max_length=2, choices=SINO)
  19.     nombre_entidad = models.CharField(max_length=50)
  20.     cargo_entidad = models.CharField(max_length=30)
  21.  
  22. class Relatos_Observaciones (models.Model):
  23.     id_expediente = models.ForeignKey(Expedientes)
  24.     texto = models.CharField(max_length=80)
  25.     categoria = models.CharField(max_length=2, choices=CAT)

Y ahora mi duda es la siguiente. Dado un doc_num de Involucrados y un texto de Relatos_Observaciones yo tengo 2 querysets:
q1 = Expe_Invo.objects.filter(id_involucrado.doc_num=x)
q2 = Relatos_Observaciones.objects.filter(texto=y)

Ahora esos 2 querysets tienen una lista de id_expediente's. Como puedo hacer un tercer queryset filtrando la tabla de Expedientes por una lista convinada (para no repetir id_expediente) de q1 y q2. Espero haberme explicado bien y desde ya muchas gracias

Última edición por AlvaroG; 04/05/2012 a las 10:02 Razón: coloreado de código