我有以下两种模式。
class TeacherInfo(models.Model):
name = models.CharField(max_length=200)
school_id = models.ForeignKey('admin_app.School')
timestamp = models.DateTimeField(auto_now=True, blank=True)
class AssignedSheetStatus(models.Model):
level = models.ForeignKey('admin_app.Levels')
subject = models.ForeignKey('admin_app.Subject')
set = models.ForeignKey('admin_app.Set')
teacher = models.ForeignKey('teacher.TeacherInfo')
assigned_count = models.PositiveIntegerField(default=0)
corrected_count = models.PositiveIntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=True)
现在我想加入这两个表,以便我name
TeacherInfo
和assigned_count
,corrected_count
的总和。
通常我会做一位老师:
AssignedSheetStatus.objects.filter(teacher__id=teacher_id).aggregate(Sum('assigned_count'), Sum('corrected_count'))
但在这里,我想要TeacherInfo
中的所有老师。
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
你可以用另一种方式做到这一点。对TeacherInfo进行注释:
TeachInfo.objects.annotate(Sum('assignedshetsstatus__assigned_count'), Sum('assignedsheetstatus__corrected_count'))