odoo 10 域 check_in 日期 != check_out 日期

odoo 10 domain check_in date != check_out date

我正在处理出勤问题,我想获得一份出勤名单,其中 check_in.date() != check_out.date() 是否可以通过搜索(域)?

这是我想出的答案。

    attendances = self.env['hr.attendance'].search([('tz_check_out', '!=', False)]).filtered(lambda r: datetime.strptime(r.tz_check_in, DEFAULT_SERVER_DATETIME_FORMAT).date() != datetime.strptime(r.tz_check_out, DEFAULT_SERVER_DATETIME_FORMAT).date())
    attendances |= self.env['hr.attendance'].search([('tz_check_out', '=', False), ('tz_check_in', '!=', False)]).filtered(lambda r: datetime.strptime(r.tz_check_in, DEFAULT_SERVER_DATETIME_FORMAT).date() != date.today())

使用 filtered() 方法而不是将日期比较放在 search() 方法中允许我将记录中的字段而不是字段与外部值进行比较。