2012-05-04 50 views
0

我有以下情況。我有3個模型 - 學校,用戶,學校教師。老師可以成爲許多學校的一部分。現在,當用戶搜索時,我們會根據一些標準顯示學校列表。我們也想爲每個學校展示用戶是否是該學校的老師。現在,我想要得到的結果在一個查詢,所以我做了這個如何從Django查詢過濾列表?

users_list = list(SchoolTeacher.objects.filter(school__in = result_list, user=self.user).values('school_id')) 

users_teacher_ids = [] 

for item in users_list : 
     users_teacher_ids .append(item['school_id']) 

而且,當時我重視每個學校的對象,

schoolobj.is_user_teacher = schoolobj.id in users_teacher_ids 

我能做些什麼比這更好的?

感謝

回答

2

如果你的模型是這樣的:

class School(models.Model): 
    # -- your fields 

class SchoolTeacher(models.Model): 
    schools = models.ManyToManyField(School) 
    # -- other fields 

然後你可以這樣做:

my_school = School.objects.get(pk=1) 
my_school.schoolteacher_set.all() # all teachers in a particular school 

many to many reverse relationships獲取更多信息的文檔。