向Django模板中的日期字段添加整数字段

向Django模板中的日期字段添加整数字段,django,datetime,date,Django,Datetime,Date,我试图在Django模板中显示奖金的到期日期。此时,开始日期存储为日期字段,奖金项存储为整数字段。不幸的是,仅仅尝试将奖金条款添加到开幕日期就失败了,到目前为止,我得到的最远结果是: {{product_form.instance.opening_date|add:product_form.instance.bonus_term}} 我试着将它添加到月份中,但不幸的是,我需要返回整个日期来显示 为了更好地了解我想要的是,假设开业日期为2012年1月1日,奖金期限为12,我想显示2013年1月1

我试图在Django模板中显示奖金的到期日期。此时,开始日期存储为日期字段,奖金项存储为整数字段。不幸的是,仅仅尝试将奖金条款添加到开幕日期就失败了,到目前为止,我得到的最远结果是:

{{product_form.instance.opening_date|add:product_form.instance.bonus_term}}
我试着将它添加到月份中,但不幸的是,我需要返回整个日期来显示

为了更好地了解我想要的是,假设开业日期为2012年1月1日,奖金期限为12,我想显示2013年1月1日的到期日期。我意识到这可能比在数据库中更好,但由于它以前的设置方式,有大量的现有数据没有它


谢谢。

我认为,对于您的场景,最优雅的解决方案是在您的模型中创建一个可计算过期日期的方法,然后在模板中调用该方法:

在模型中:

class product(models.Model): 
    opening_date = ...
    bonus_term = ...
    def expire_date( self ):
         return self.opening_date + timedelta( days = self.bonus_term )
在模板中:

{{product_form.instance.expire_date}}

我相信您会在代码的其他更多行中调用此方法。

您需要编写自己的模板筛选器或添加另一个上下文变量,尽管您可能能够将datetime字段格式化为字符串,然后使用add连接您的TextThank,我知道我错过了Django的一个可以使用的功能。当你有了解决方案,回来发布;)danihp这次似乎有一个更好的方法:)太好了,我唯一做的更改是使用relativedelta而不是timedelta代码:return self.opening_date+relativedelta(months=+self.bonus_term)非常感谢