本文介绍了Django自定义保存模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在django中的保存模式中执行基本日期计算,见下面的代码:
I'm trying to perform a basic date calculation in a save model in django, see below code:
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()
我以为以下的工作,但没有运气..它的错误:
I thought the following would work but no luck.. it errors with:
'datetime.date' object has no attribute 'timedelta'
任何人都可以指向正确的方向做我想做的事情?
Can anyone point in the right direction to do what I'm trying to do?
干杯,
本
推荐答案
timedelta不接受年数,所以
timedelta doesnot accept years, so
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)
参考
这篇关于Django自定义保存模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!