我有一个简单的模型:
class Atividade(models.Model):
valor_brl = models.DecimalField(max_digits=14, decimal_places=2)
dolar_ref = models.DecimalField(max_digits=14, decimal_places=2)
valor_usd = models.DecimalField(max_digits=14, decimal_places=2)
我创建了一个使用模型中的两个字段计算新值的方法
@property
def valor_usd_novo(self):
valor_usd_novo = self.valor_brl / self.dolar_ref
return valor_usd_novo
如果我调用{{ valor_usd_novo }}
,我会得到我想要的结果
在此之后,我创建save()方法,将valor_usd_novo
结果保存在模型的valor_usd
字段中
def save(self, *args, **kwargs):
self.valor_usd = self.valor_usd_novo()
super(Atividade, self).save(*args, **kwargs)
关键是,当我调用valor_usd
时,我没有得到任何结果,数据库也不会使用valor_usd_novo
方法的结果进行更新
我错过了什么
我真的很感谢你的帮助。我找到了问题的解决方案:
使用这段代码,当我在模板中调用
{{atividade.new_value}}
时,我得到了新值和self.valor_usd
更新中的值valod_usd_novo
是一个property
,因此您需要将其视为一个属性,而不是一个方法。因此,放弃调用并将其作为属性引用:相关问题 更多 >
编程相关推荐