2015-08-03 58 views
1

我有這兩種型號:從另一個表刷新領域的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() 

當我創建一個校準,我想探頭的到期日進行更新,我怎麼能實現我的模型允許那?

回答

1

試試這個:

from dateutil.relativedelta import relativedelta 

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

我已編輯答案。請檢查一下。 –

相關問題