2015-11-19 84 views
0

我將根據某個外鍵(在另一個表中)中的字段是否包含字符串來過濾表中的對象。請看下面的表格:python django:根據另一個表上的條件過濾表格

class Students(models.Model): 
     StudentID = models.SmallIntegerField(primary_key=True) 
     Teacher = models.ForeignKey(Teachers) 

class Teachers(models.Model): 
     TeacherID = models.SmallIntegerField(primary_key=True) 
     TeacherName = models.CharField(max_length=20) 

我想有學生的queryset的,他們的老師的名字中含有「薩拉」。下面的代碼使查詢集:

student_queryset = Students.objects.all() 
for student in student_queryset: 
    if str(student.Teacher.TeacherName).find('Sara') == -1: 
      student_queryset = student_queryset.exclude(StudentID = student.StudentID) 

問題是這段代碼很慢。

回答

0

我明白了。它只是一排:

student_queryset = Students.objects.filter(Teacher__TeacherName__contains = 'Sara') 
相關問題