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

这里有几个拼写错误,我不确定那是干什么的。 –