首页 > 解决方案 > Django 从模型字段计算平均值并存储在另一个模型中

问题描述

我有一个模型,我至少持有 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

标签: pythondjango

解决方案


推荐阅读