将日期添加到日期时间并将其转换为日期?-Odoo V14



我想在日期时间字段中添加30天,并使我的日期字段将此值作为默认值。

我试过了,但不起作用:/


from odoo import models, fields, api
from datetime import datetime
from dateutil.relativedelta import relativedelta
class crm_lead(models.Model):
_inherit = 'crm.lead'

date_deadline = fields.Datetime(string='Fermeture prévue')

@api.onchange('create_date')
def _onchange_enddate(self):
if self.create_date:
date_end = ( datetime.strptime(self.create_date, '%Y-%m-%d') + relativedelta(days =+ 30).strftime('%Y-%m-%d') )
self.date_deadline = date_end.date()

提前感谢!

create_date是_create方法中设置的一个魔术字段。要将创建日期用作date_deadline字段的默认值,可以使用默认属性并使用date.today函数来获取创建日期。

示例:

date_deadline = fields.Datetime(default=lambda record: fields.Date.today() + relativedelta(days=30))

这行吗?:

from odoo import models, fields, api
from datetime import datetime, date, timedelta
class crm_lead(models.Model):
_inherit = 'crm.lead'

date_deadline = fields.Datetime(string='Fermeture prévue')

@api.onchange('create_date')
def _onchange_enddate(self):
if self.create_date:
date_end = ( date.today()  + timedelta(30))
date_deadline = date_end

它给出当前日期+30天。

它不会剥离datetime变量,所以您可能希望在之后进行剥离。

最新更新