Я создаю программу управления результатами.Мне нужно найти среднее из трех лучших оценок из 5 (CT1 - CT4, Assignment) или меньше.Если введено менее 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 =