У меня есть модель, в которой у меня по крайней мере 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