Odoo 12无法启动自定义模块-TypeError:-:'tuple'and'datetime.timedelta']不支持的操作数类型

问题描述 投票:0回答:1

是odoo的新手,iam想要做的是,我要减去datetime.timedelta(days = 90),该日期距离license_renewal_date =(2021,6,6)的日期是90天,但是我尝试使用iam时得到以下错误

before_90_days = datetime.datetime.now().date() - datetime.timedelta(days = 90)
datetime.date(2020, 3, 11)

license_renewal_date = (2021,6,6)

exp_90_days = license_renewal_date - datetime.timedelta(days = 90)

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'tuple' and 'datetime.timedelta'

在Odoo py文件中:

license_renewal_date = fields.Date("Renewal Date",track_visibility='onchange')

def exp_date1(self):
    before_90_days = datetime.datetime.now().date()- datetime.timedelta(days = 90)
    exp_90days = self.env['(crm.lead.extended)'].search([('(license_renewal_date)','=',before_90_days)])
    template = self.env.ref('crm_extended.create_crm_lead_mail_template')
    template.send_mail(rec.id, force_send=True)   

更新: 我的更新仍然出现相同的错误,有人可以帮助他]

@ api.multi

def exp_date1 (self):

    testDateOnly = license_renewal_date.date;

    before_90_days = testDateOnly - datetime.timedelta (days = 90)

    # before_90_days = datetime.datetime.now (). date () - datetime.timedelta (days = 90)

    exp_90days = self.env ['(crm.lead.extended)']. search ([('(license_renewal_date)', '=', before_90_days)])

    template = self.env.ref ('crm_extended.create_crm_lead_mail_template')

    template.send_mail (self.id, force_send = True) 
python datetime odoo odoo-11 odoo-12
1个回答
0
投票

您不能仅使用元组datetime创建对象(2021,6,6)

 license_renewal_date = (2021,6,6)

您必须为此使用对象datetime

 license_renewal_date = datetime.datetime(2021, 6, 6).date()

这就是您的全部问题。

现在它可以正常工作了,没有错误:

import datetime

before_90_days = datetime.datetime.now().date() - datetime.timedelta(days=90)

print(before_90_days)

license_renewal_date = datetime.datetime(2021, 6, 6).date()

exp_90_days = license_renewal_date - datetime.timedelta(days=90)

print(exp_90_days)
© www.soinside.com 2019 - 2024. All rights reserved.