将日期添加到日期时间并将其转换为日期? - 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()

提前致谢!

解决方法

这行得通吗?:

import 'leaflet';

它给出当前日期 + 30 天。

它不会剥离 datetime 变量,因此您可能希望在之后执行此操作。

,

create_date 是在 magic field 方法中设置的 _create。要将创建日期用作 date_deadline 字段的默认值,您可以使用 default 属性并使用 Date.today 函数获取创建日期。

示例:

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