Я хочу вычислить общее среднее значение по категориям оценок и умножить его на заданное число, используя аннотацию
это мои views.py
from django.db.models import F
gradepercategory = studentsEnrolledSubjectsGrade.objects.filter(grading_Period = period).filter(Subjects = subject).filter\
(Grading_Categories__in = cate.values_list('id')).values('Grading_Categories').annotate( average_grade = Avg * F('Grading_Categories__PercentageWeight') / 100)
это мои models.py
class gradingCategories(models.Model):
CategoryName = models.CharField(max_length=500, null=True)
PercentageWeight = models.FloatField()
class studentsEnrolledSubjectsGrade(models.Model):
GradeLevel = models.ForeignKey(EducationLevel, related_name='grade', on_delete=models.CASCADE,
null=True, blank=True)
Subjects = models.ForeignKey(Subject, related_name='subject', on_delete=models.CASCADE, null=True)
Students_Enrollment_Records = models.ForeignKey(StudentsEnrolledSubject, related_name='student',
on_delete=models.CASCADE, null=True)
Grading_Categories = models.ForeignKey(gradingCategories, related_name='category', on_delete=models.CASCADE,
null=True, blank=True)
grading_Period = models.ForeignKey(gradingPeriod, related_name='period', on_delete=models.CASCADE,
null=True, blank=True)
_dates = models.CharField(max_length=255,null=True, blank=True)
Grade = models.FloatField(null=True, blank=True)
Для получения дополнительной информации:
Например, среднее значение Викторины (категории оценки) равно 80, и оно умножится на 15 (PercentageWeight)
Всего = 80 (Grading_Categories) * 15 (PercentageWeight) total = total / 100
Результат должен быть 12