这是我想要完成的:我的模型中有一个“年龄”字段,我希望它的值是到现在为止的持续时间 - 我的意思是现在是实时的,而不仅仅是对象创建时间或更新时间。
起初我想知道 django 中是否有某种动态字段,字段值会根据公式不断更新。但后来我觉得这不现实,它必须在某个时间点被某些东西更新。
现在我想到的是写一个模型方法来计算值并将其分配给字段,并在每次查询类对象之前手动调用它并将新值写入字段。
我想知道是否有更好的方法来完成此操作,因为我的方法会向数据库添加一些负载,这可能是不必要的。
感谢您的帮助。
请您参考如下方法:
这确实是错误的做法。您应该在数据库中存储一个静态值——即确切的创建或更新时间——然后在需要时通过 Python 方法导出年龄。例如:
class MyModel(models.Model):
updated_at = models.DateTimeField(auto_now=True)
@property
def age(self):
return (datetime.datetime.now() - self.updated_at).seconds # or whatever units
