Django从模型字段计算平均值并存储在另一个Mod中

2024-04-16 06:56:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: nameselftruemodelsnull分数maxdecimal