用于计算特定出勤率的Django查询表达式

2024-09-24 06:32:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有1000行的字段。在这些行中有两个可用状态。在场和缺席。我想知道是否有一个查询表达式来计算出席人数字段中出席或缺席的学生总数,以便我可以将答案存储在相应的字段中(出席人数字段已填充“出席”和“缺席”)

class StudentInClass(models.Model):
    Attendance = models.CharField(max_length=20, default='None')
    Total_Present = models.IntegerField
    Total_Absent = models.IntegerField

我用这些命令工作,但这些不是我真正想要的。如果对此有表达式查询,请让我知道

present_count = StudentInClass.objects.filter(Attendance__contains='Present').count 
absent_count = StudentInClass.objects.filter(Attendance__contains='Absent').count

Tags: objects表达式modelscount数字filtertotalattendance
3条回答

您正在寻找筛选方法。我也会选择BooleanField而不是IntegerField。然后过滤并计数

class StudentInClass(models.Model):
    attendance = models.CharField(max_length=20, default='None')
    total_present = models.BooleanField(default=False)
    total_absent = models.BooleanField(default=False,null=True)

student_count = StudentIntClass.objects.filter(total_present==True).count()

与此类似

类似下面的东西应该可以工作(未经测试)

from django.db.models.aggregates import Sum
StudentInClass.objects.aggregate(sum_present=Sum("Total_Present"), sum_absent=Sum("Total_Absent"))

我用这些命令工作,但这些不是我真正想要的。如果对此有表达式查询,请让我知道

出席人数=StudentInClass.objects.filter(出席人数包含class='present').count 缺席人数=StudentInClass.objects.filter(考勤人数包含class='缺席').count

相关问题 更多 >