[pyar] SubQuery con el ORM de Django y ManyToMany

Martin Volpe martin.volpe en gmail.com
Lun Mar 5 16:06:50 -03 2018


Hola!

Tengo esta tabla

class Doctor(models.Model):
    availabilities = models.ManyToManyField(Availability, blank=True)
    taken_availabilities = models.ManyToManyField(Availability, blank=True,
related_name='taken_availabilities')

Y lo que quiero es tener una lista de Availability, tal que todas las
Availability las tenga por lo menos un doctor *y *los doctores que la
tengan, no la tengan en el set de taken_availabilities. (conceptualmente,
todos los horarios donde hay un doctor disponible)

Llegué a estaquery:
Availability.objects.filter(doctor__in=Psychologist.objects.filter(availabilities__id=F('id')).exclude(taken_availabilities__id=F('id')))

Pero me termina devolviendo todas las Availability que tienen los psy, no
importa si están tomadas o no. Estoy dudando un poco del F, pero no se me
ocurre como arreglarlo.

Alguien tiene un salvavidas?

Saludos!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180305/55d37d71/attachment.html>


Más información sobre la lista de distribución pyar