Openerp 为什么我得到这个错误类型错误:strtime()参数1必须是字符串,而不是bool

Openerp 为什么我得到这个错误类型错误:strtime()参数1必须是字符串,而不是bool,openerp,onchange,odoo-9,Openerp,Onchange,Odoo 9,这是我的代码: @api.onchange('birth_date','age','a') @api.one def update_ages_onchange(self): if self.birth_date < (datetime.now() - timedelta(days=(180))).strftime('%Y-%m-%d'): d1 = datetime.strptime(self.birth_date, "%Y-%m-%d").date()

这是我的代码:

 @api.onchange('birth_date','age','a')
@api.one
def update_ages_onchange(self):
    if self.birth_date < (datetime.now() - timedelta(days=(180))).strftime('%Y-%m-%d'):
        d1 = datetime.strptime(self.birth_date, "%Y-%m-%d").date()
        d2 = date.today()
        self.age = relativedelta(d2, d1).days
        a = relativedelta(d2, d1) 
        self.a = ' Less than' str(a.days) + ' days'
@api.onchange('birth\u date','age','a'))
@api.1
def更新更改(自):
如果self.birth_date<(datetime.now()-timedelta(days=(180)).strftime(“%Y-%m-%d”):
d1=datetime.strtime(self.birth_date,“%Y-%m-%d”).date()
d2=日期。今天()
self.age=relativedelta(d2,d1)。天
a=相对温差(d2,d1)
self.a='小于'str(a.days)+'天'
如何解决此错误:TypeError:strptime()参数1必须是字符串,而不是bool,在d1=datetime.strptime(self.birth\u date,“%Y-%m-%d”).date()中假设我们有:

import datetime
# To convert `string` to `datetime` you should use
datetime.datetime.strptime(self.field_name, "%Y-%m-%d %H:%M:%S").date()
就这些

还要注意的是,
self.birth\u date
是字符串,所以要比较两个
datetime
应该使用
datetime
而不是字符串

以下代码是正确的:

d1 = datetime.datetime.strptime(self.birth_date, "%Y-%m-%d %H:%M:%S").date()
# where self.birth_date is fields.Datetime(string='Birth Date')
想象一下我们有这样的情况:

import datetime
# To convert `string` to `datetime` you should use
datetime.datetime.strptime(self.field_name, "%Y-%m-%d %H:%M:%S").date()
就这些

还要注意的是,
self.birth\u date
是字符串,所以要比较两个
datetime
应该使用
datetime
而不是字符串

以下代码是正确的:

d1 = datetime.datetime.strptime(self.birth_date, "%Y-%m-%d %H:%M:%S").date()
# where self.birth_date is fields.Datetime(string='Birth Date')

发生此错误的原因是该字段为null,并且odoo将null值转换为false。请在使用该字段之前检查该字段是否有值。发生此错误的原因是该字段为null,并且odoo将null值转换为false。请在使用该字段之前检查该字段是否有值