0

鑑於我有這些模型:Django的過濾器和-ING的相關VS原始謂詞

class Student(Model): 
    pass 

class Exam(Model): 
    student = models.ForeignKey(Student) 
    is_hard = models.BooleanField(...) 
    is_completed = models.BooleanField(...) 

我怎麼會得到過濾,符合這些條件的學生的查詢集:

  1. 學生有一個完成考試和一個嚴格的考試。 (即學生可能有一門考試很難完成)
  2. 完成考試的學生也是一門硬性考試。 (同一考試必須既艱苦又完整)。

我認爲,後者的答案爲:

Student.objects.filter(exam__is_hard=True, exam__is_completed=True) 

,但我怎麼以前?

回答

0

使用Q objects

Student.objects.filter(Q(exam__is_hard=True, exam__is_completed=True)|Q(exam__is_hard=True)|Q(exam__is_completed=True)) 
+0

這裏有幾個拼寫錯誤,我不確定那是幹什麼的。 –