【发布时间】:2019-08-26 18:34:54
【问题描述】:
我有:
class Teacher(models.Model):
name = models.CharField(...)
...
class Student(models.Model):
age = models.IntegerField(...)
teacher = models.ForeignKey(Teacher, ...)
...
我有一个教师查询集:
teachers = Teacher.objects.filter(name="Betty")
我想在该查询集中查找与每位教师相关的所有学生,并且我需要将结果按教师分组。比如:
{
<Teacher: 1>: [<Student: 1>, <Student: 2>],
<Teacher: 2>: [<Student: 3>, <Student: 4>]
}
我可以通过循环遍历 teachers 查询集中的每个对象并按该老师的 ForeignKey 的学生过滤学生来完成此操作,但这似乎真的很慢,并且需要对每个对象进行额外的 DB 调用。有没有什么方法可以在一个或几个 DB 调用中实现这一点,理想情况下,同时保持纯 Python 而不是求助于 SQL?
【问题讨论】:
标签: python django django-models