【发布时间】:2019-03-16 08:35:12
【问题描述】:
我正在尝试通过执行以下操作来降低复杂性。我正在努力让所有老师都活跃在课堂上。
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
通过这样做,我得到了有教室的老师。但它也会返回没有我不想要的活动教室(空列表)的教师。正因为如此,我不得不用空的教室集循环数以千计的老师。有什么办法可以删除那些教室集为[]的老师吗?
这是我最初的问题 - Django multiple queries with foreign keys
谢谢
【问题讨论】:
-
如果老师有一个主动教室和一个被动教室怎么办?
-
你能提供这个模型吗?
-
这里的“教室”是什么?什么定义了课堂是否活跃?
-
不应该是
Classroom而不是Class吗? -
@WillemVanOnsem 是的,我的错。 Guys Classroom 和 Teacher 是两个不同的应用
标签: python mysql django python-2.7 prefetch