Django Custom Save Model

Estoy tratando de realizar un cálculo de fecha básico en un modelo de guardado en django, consulte el siguiente código:

class Purchase(models.Model): purchase_date = models.DateField() purchase_place = models.CharField(verbose_name='Place of Purchase', max_length=255) purchaseCategory = models.ForeignKey(PurchaseCategory, verbose_name='Purchase Category') cost = models.DecimalField(max_digits=11, decimal_places=2) warranty_period_number = models.IntegerField() warranty_period_type = models.CharField(max_length=255, choices=(('m', 'Month(s)'), ('y', 'Year(s)'))) warranty_end_date = models.DateField(editable=False) scan = models.CharField(max_length=255) alerts = models.BooleanField(verbose_name='Receive Email Alerts?') user = models.ForeignKey('auth.User', editable=False) created = models.DateTimeField(editable=False, auto_now_add=True) modified = models.DateTimeField(editable=False, auto_now=True) #custom save model def save(self, *args, **kwargs): #figure out warranty end date if self.warranty_period_type == 'm': self.warranty_end_date = self.purchase_date + self.purchase_date.timedelta(months=self.warranty_period_number) else: self.warranty_end_date = self.purchase_date + self.purchase_date.timedelta(years=self.warranty_period_number) super(Purchase, self).save() 

Pensé que lo siguiente funcionaría, pero no hubo suerte. Error con:

 'datetime.date' object has no attribute 'timedelta' 

¿Puede alguien apuntar en la dirección correcta para hacer lo que estoy tratando de hacer?

Saludos, Ben

timedelta no acepta años, así que

 from datetime import timedelta # custom save model def save(self, *args, **kwargs): # figure out warranty end date if self.warranty_period_type == 'm': self.warranty_end_date = self.purchase_date + timedelta(days=self.warranty_period_number*31) else: self.warranty_end_date = self.purchase_date + timedelta(days=self.warranty_period_number*365.2425) super(Purchase, self).save(*args, **kwargs) 

Refs Python timedelta en años