假設(shè)我有兩個(gè)不同的應(yīng)用程序:teacher/models.py: Teacher(models.Model): name = models.CharField(max_length=300)class/models.py: Class(models.Model): name = models.CharField(max_length=300) teacher = models.ForeignKey(Teacher) students = models.ManyToManyField(Student)我想讓所有的老師上課和所有的課程都附上。我想要的結(jié)果:{[ teacher: '3L' #Teachers Id classes: ['20L','14L','30L'] #list of Class objects or ids with the above teacher],[# similar to above]}這是可能的嗎?這就是我目前正在做的事情:classes = Class.objects.all()teachers = Teacher.objects.filter(id__in=classes.value_list('teacher',flat=True).distinct())for teacher in teachers: classes_for_teachers = classes.objects.filter(teacher=teacher)在上面的代碼中,有四個(gè)使用循環(huán)進(jìn)行的查詢,這無疑增加了時(shí)間復(fù)雜度。有沒有更好的解決方案?提前致謝。
Django使用外鍵進(jìn)行多次查詢
繁華開滿天機(jī)
2021-07-08 10:35:28