我有以下情况。我有3个模特 - 学校,用户,SchoolTeacher。教师可以成为许多学校的一部分。现在,当用户搜索时,我们会根据某些标准显示学校列表。我们还希望为每所学校展示用户是否是该学校的教师。现在,我想在一个查询中得到结果,所以我已经完成了这个
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
我可以做比这更好的事吗?
感谢
答案 0 :(得分: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。