我在做篮球联赛管理网站时正在学习Django,而且我不确定如何根据其他统计数据来处理存储统计数据。
例如,场地目标百分比,即场地目标制定/场地目标尝试。从我收集到的内容中,有三种方法可以“存储”模型:
1)作为不可编辑的字段,在保存
时计算和更新 fg_perc = models.FloatField(default=0, editable=False)
def save(self, *args, **kwargs):
self.fg_perc = round(self.fgm / self.fga, 3) * 100
super(PlayerBoxscore, self).save(*args, **kwargs)
2)作为一个功能
def fg_perc(self):
if self.fga == 0:
return "-"
else:
return round(self.fgm / self.fga, 3) * 100
3)作为财产
def _fg_perc(self):
if self.fga == 0:
return "-"
else:
return round(self.fgm / self.fga, 3) * 100
fg_perc = property(_fg_perc)
基本上我要问的是哪一个是“最好的”。
我在想的是,这些数据不会经常变化,并且会经常查看,因此第一个选项会是最好的,因为每次都不会计算数据(就像其他两个例子一样) )。但我看到人们建议使用property
,所以我不确定。
最近,2)和3)有什么区别?
谢谢, 帕维尔