我正在创建结果管理程序。我需要从输入的5分(CT1至CT4,分配)中最好的3分中找到平均值。如果输入少于5个标记,它将忽略空列。如果输入少于三个,它将用给定的两个输入的平均值虚拟第三个,然后计算平均值。单一输入将直接平均显示标记。
最后,平均分数和出勤分数将总计。
我的模特是:
class Result(models.Model):
asign = models.ForeignKey(Assignation, on_delete=models.CASCADE, null=True)
student = models.ForeignKey(Student, on_delete=models.CASCADE, null=True)
ct1 = models.FloatField(null=True, blank=True)
ct2 = models.FloatField(null=True, blank=True)
ct3 = models.FloatField(null=True, blank=True)
ct4 = models.FloatField(null=True, blank=True)
asn = models.FloatField(null=True, blank=True)
avg = models.FloatField(null=True, blank=True)
atd = models.IntegerField(null=True, blank=True)
total = models.IntegerField(null=True, blank=True)
def __str__(self):
return str(self.asign.reg.session) + ' - ' + 'IT-' + str(self.asign.reg.course.cidn) + ' - ' + self.student.snam
views.py:
class FindStudentresult(ListView):
template_name = 'Dashboard/findStudentresult.html'
model = Result,Student,Registration,Assignation
fields = ['all']
def get_queryset(self):
result=Result.objects.filter(student=self.kwargs['pk'])
return result
def totals(self):
avg =