Tengo los siguientes modelos de Django.
class A(models.Model): tmp = models.ForeignKey(B) active = models.BooleanField() class B(models.Model): active = models.BooleanField() archived = models.BooleanField()
Ahora tengo la siguiente consulta.
A.objects.select_related(B).filter(active=True)
Ahora esto recupera todos los objetos de B. Ahora, ¿cómo puedo incluir un filtro de active=True
y archived=False
en la cláusula select_related
para el modelo B
?
Lo mismo que haría con cualquier otro campo relacionado, con una búsqueda __
..
A.objects.select_related(B).filter(active=True, tmp__active=True, tmp__archived=False)
El uso de selección relacionada no cambia nada aquí, su propósito es sobre qué información se devuelve con los resultados, no tiene ningún efecto en el filtrado.