刷新另一个表中的字段[Django] [英] Refresh a field from another table [Django]

查看:51
本文介绍了刷新另一个表中的字段[Django]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下两个模型:

class probe(models.Model):

    serial=models.CharField("Serial Number",max_length=30,primary_key=True)
    clientID=models.ForeignKey(organisation)
    inst_date=models.DateField("Installation Date")
    exp_date=models.DateField("Expiration Date",blank=True)


    def save(self):
         if self.exp_date is None:
            self.exp_date=self.inst_date.replace(year=self.inst_date.year+1)
    super(probe,self).save()


    def isExpired(self):
        return self.exp_date<=datetime.date.today()
     isExpired.admin_order_field="exp_date"
     isExpired.boolean=True
     isExpired.short_description="Needs calibration"


     def __str__(self):              
         return self.serial

class calibration(models.Model):
    probe=models.ForeignKey(probe)
    date=models.DateField("Date of Calibration")
    isSent=models.BooleanField("Email sent?",default=False)

    def __str__(self):              
        return str(self.date)

    def save(self):
        self.probe.exp_date=self.date.replace(year=self.date.year+1)
        super(calibration, self).save()   

创建校准时,我希望更新探头的失效日期,如何实现我的模型以允许这样做?

When I create a calibration, I want the expiry date of the probe to update, how can I implement my models to allow that?

推荐答案

尝试一下:

from dateutil.relativedelta import relativedelta

def save(self):
    self.probe.exp_date=self.date + relativedelta(years=1)
    self.probe.save()
    super(calibration, self).save()   

这篇关于刷新另一个表中的字段[Django]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆