У меня есть это вычисление в моих представлениях о том, что при использовании фильтра и метода агрегирования
first я различаю StudentSubjectGrade
second Я фильтрую связанное поле в StudentSubjectGrade .
Третий Я использую агрегат для вычисления среднего значения, и для каждой категории оценок мне нужно умножить его на его PercentageWeight ,
это вычисление
* среднее = среднее * Grading_Categories__PercentageWeight / 100 *
students = StudentSubjectGrade.objects.filter(
grading_Period=period).filter(
Subjects=subject).order_by(
'Students_Enrollment_Records', 'Grading_Categories','id'
).values('id','Grading_Categories','Average', 'Grading_Categories__PercentageWeight')
overall = StudentSubjectGrade.objects.filter(
grading_Period=period).filter(
Subjects=subject).aggregate(average_grade=Avg('Average') * students[
'Grading_Categories__PercentageWeight'] / 100)
это их модели
class StudentSubjectGrade(models.Model):
GradeLevel = models.ForeignKey(EducationLevel, on_delete=models.CASCADE, null=True, blank=True)
Subjects = models.ForeignKey(Subject, on_delete=models.CASCADE,null=True)
Students_Enrollment_Records = models.ForeignKey(StudentsEnrolledSubject,on_delete=models.CASCADE, null=True)
Grading_Categories = models.ForeignKey(gradingCategories,on_delete=models.CASCADE,null=True, blank=True)
grading_Period = models.ForeignKey(gradingPeriod,on_delete=models.CASCADE,null=True, blank=True)
Gradedates = models.DateField(auto_now_add=True)
Average = models.FloatField(null=True, blank=True)
class gradingCategories(models.Model):
CategoryName = models.CharField(max_length=500, null=True)
PercentageWeight = models.FloatField()
это ошибка, которую я получаю
ОБНОВЛЕНИЕ , когда я попробовал это
overall = StudentSubjectGrade.objects.filter( grading_Period=period).filter( Subjects=subject).aggregate(average_grade=Avg('Average') * F( 'Grading_Categories__PercentageWeight') / 100 )
Я получил эту ошибку