2012-05-04 96 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获取更多信息的文档。