Django Filter And-ing of Related vs Original Predicates -


given have these models:

class student(model):   pass  class exam(model):   student = models.foreignkey(student)   is_hard = models.booleanfield(...)   is_completed = models.booleanfield(...) 

how filtered queryset of students matching these criteria:

  1. students have completed exam , hard exam. (i.e. student may have 1 exam hard , 1 completed)
  2. students have completed exam hard exam. (the same exam must both hard , completed).

i believe latter answered with:

student.objects.filter(exam__is_hard=true, exam__is_completed=true) 

but how former?

use q objects.

student.objects.filter(q(exam__is_hard=true, exam__is_completed=true)|q(exam__is_hard=true)|q(exam__is_completed=true)) 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -