Django вычисление с использованием агрегатного метода - PullRequest
1 голос
/ 20 марта 2020

У меня есть это вычисление в моих представлениях о том, что при использовании фильтра и метода агрегирования

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()

это ошибка, которую я получаю

enter image description here

ОБНОВЛЕНИЕ , когда я попробовал это

overall = StudentSubjectGrade.objects.filter( grading_Period=period).filter( Subjects=subject).aggregate(average_grade=Avg('Average') * F( 'Grading_Categories__PercentageWeight') / 100 )

Я получил эту ошибку

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...