所以基本上我有一个具有外键校准功能的模型设备。我想在“设备”中有一个字段为“ latest_calibrated_date”,该字段从最新创建的校准中获取“ cal_date”。这是我现在所拥有的:
def latest_calibration_date(self):
return Calibration.objects.filter(cal_asset__id = self.id).order_by('-id')[0].cal_date
但是,出于其他一些应用程序的目的,我想将其设置为方法而不是方法。因此,我正在考虑使用latest_calibration_date = models.DateField()并在每次添加新的校准时对其进行更新。我该怎么办?
正如Daniel Roseman指出的那样,您可以覆盖模型上的save
方法Calibration
。例如:
class Calibration(model.Model):
# your fields
def save(self, *args, **kwargs):
super(Calibration, self).save(*args, **kwargs)
# update latest calibration date
您可以通过多种方式存储参数,例如,通过创建Parameter
用于存储变量的模型。
class Parameter(models.Model):
key = models.CharField(max_length=255, unique=True)
value = models.IntegerField()
description = models.TextField(blank=True, null=True)
def __str__(self):
return self.key
然后再进入save
:
import time
p = Parameter.objects.get(key='LATEST_CALIBRATION_DATE')
p.value = time.time() # save in UNIX timestamp
p.save()
或您喜欢的任何格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句