Django вычисляет среднее значение из полей модели и сохраняет в другой модели - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть модель, в которой у меня по крайней мере 3 очка, но которые в будущем могут быть больше. Баллы могут быть пустыми или содержать значение, означающее, что разные школы могут иметь различное количество записей.

Моя задача состоит в том, чтобы я хотел иметь поле, основанное на функции из приведенных выше баллов, чтобы я мог вызывать это на своих представлениях, а не вычислять его каждый раз.

Я пытаюсь найти лучший способ гарантировать, что основная оценка рассчитывается и сохраняется каждый раз, когда обновляется одна из участвующих оценок, но только тогда.

class Marks(models.Model):
    school = models.ForeignKey(School, null=True, on_delete=models.SET_NULL)
    marks_2016 = models.DecimalField(name='2016 Marks', max_digits=12, decimal_places=3, blank=True, null=True)
    marks_2017 = models.DecimalField(name='2017 Marks', max_digits=12, decimal_places=3, blank=True, null=True)
    marks_2018 = models.DecimalField(name='2018 Marks', max_digits=12, decimal_places=3, blank=True, null=True)

    def __str__(self):
        return self.school.name

class Score(models.Model):
    school = models.ForeignKey(School, null=True, on_delete=models.SET_NULL)
    score = models.DecimalField(max_digits=5, decimal_places=2)

    def __str__(self):
        return self.school
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...