您好,我有两个模型教学学期和入学,我想计算特定类(class)的学生人数。实际上,我想要一个注册学生字段,每次创建Enrollments对象时该字段都会增加。 这是我的学期教学
模型class TeachingSemester(models.Model):
department = models.ForeignKey(Department,on_delete=models.CASCADE)
program = models.ForeignKey(Program,on_delete=models.CASCADE)
faculty = models.ForeignKey(FacultyData,on_delete=models.CASCADE)
semester_choices = (
('Spring' , 'Spring'),
('Fall' , 'Fall'),
('Summer' , 'Summer')
)
sem_choice = models.CharField(max_length=30,choices=semester_choices,default='Spring')
course_date = models.DateField(default=datetime.date.today())
section = models.CharField(max_length=5,default = 1)
faculty_course = models.ForeignKey(Course,on_delete=models.CASCADE)
以及注册模型
class Enrollment(models.Model):
student = models.ForeignKey(StudentData,on_delete=models.CASCADE)
faculty = models.ForeignKey(TeachingSemester,on_delete=models.CASCADE)
最佳答案
请不要。保持整数正确更新会带来很多麻烦。例如,如果稍后删除 StudentData
,它也会删除所有相关的 Enrollment
,因此需要删除大量 TeachingSemester
。相应更新。查找每种可能的场景并相应地更新 TeachingSemester
对象可能非常困难。
您可以.annotate(…)
[Django-doc]与:
from django.db.models import <b>Count</b>
TeachingSemester.objects.annotate(<b>registered_students=Count('enrollment')</b>)
从此 QuerySet
产生的 TeachingSemester
对象将具有一个额外的属性 .registered_students
。
关于django - 在 Django 中创建对象时增加整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72626917/