更新表Django

时间:2018-09-22 03:40:13

标签: django database django-models django-views

我正在创建结果管理程序。我需要从输入的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 =  

0 个答案:

没有答案