我试图通过执行以下操作来降低我的复杂性。我正在努力让所有老师都进入活跃的课堂。
teacher/models.py:
Teacher(models.Model):
name = models.CharField(max_length=300)
classroom/models.py:
Classroom(models.Model):
name = models.CharField(max_length=300)
teacher = models.ForeignKey(Teacher)
students = models.ManyToManyField(Student)
status = models.CharField(max_length=50)
admin/views.py
teachers = Teacher.objects.prefetch_related(Prefetch('classroom_set',queryset=Classroom.objects.filter(status='Active'))
for teacher in teachers:
classrooms = teacher.all()
# run functions
Run Code Online (Sandbox Code Playgroud)
通过这样做,我让老师们有了教室。但它也会返回没有我不想要的活跃教室(空列表)的教师。正因为如此,我不得不用空的classroom_set来循环数千名教师。有什么办法可以删除那些classroom_set是[]的老师吗?
这是我的原始问题 - 带有外键的 Django 多个查询
谢谢