Django 如何在模板中对多个进行分组

Django 如何在模板中对多个进行分组,django,django-templates,Django,Django Templates,这是我的模型: class Teacher(models.Model): name = models.CharField(max_length=50) subjects = models.ManyToManyField(Subject) class Subject(models.Model): name = models.CharField(max_length=50) type = models.ForeignKey(SubjectType) cl

这是我的模型:

class Teacher(models.Model):
    name = models.CharField(max_length=50)  
    subjects = models.ManyToManyField(Subject)

class Subject(models.Model):
    name = models.CharField(max_length=50)
    type = models.ForeignKey(SubjectType)   

class SubjectType(models.Model):
    name = models.CharField(max_length=50)
我想在模板中执行类似操作:

{regroup subjects by subject.type}
  {foreach subject_type}
    #display all teachers for subject_type         
每个科目都有自己的
教师集

我如何才能为某一特定科目类型联合所有教师?

我认为您无法从模板中获得此功能。但是,您可以在自己的视图中执行此操作:

subject_type = # Some SubjectType object
my_teachers = []
for subject in subject_type.subject_set:
    my_teachers += subject.teacher_set
# What we do with the duplicates?
my_teachers = list(set(my_teachers))
现在,您在
my_teachers
中有一个特定主题类型的唯一教师列表


编辑:您可以对每个SubjectType对象执行此操作,并将结果列表(列表)传递给模板。

我认为您无法从模板获得此功能。但是,您可以在自己的视图中执行此操作:

subject_type = # Some SubjectType object
my_teachers = []
for subject in subject_type.subject_set:
    my_teachers += subject.teacher_set
# What we do with the duplicates?
my_teachers = list(set(my_teachers))
现在,您在
my_teachers
中有一个特定主题类型的唯一教师列表


编辑:您可以对每个SubjectType对象执行此操作,并将结果列表(列表)传递给模板。

非常感谢。现在我明白了,在开始与django打交道之前,我应该先学习python。:)@弗拉基米尔纳尼,我以前不会说,我会同时说非常感谢。现在我明白了,在开始与django打交道之前,我应该先学习python。:)@弗拉基米尔纳尼,我以前不会说,我会同时说