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。:)@弗拉基米尔纳尼,我以前不会说,我会同时说