用于从指定日期范围 returns 范围外的记录中获取记录的域

Domain for fetching records from specified date range returns records outside that range

我正在尝试使用 XML-RPC 从 Odoo8 数据库中获取数据。

我有这样的要求写在Python:

common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
uid = common.authenticate(db, username, password, {})

models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
test = models.execute_kw(db, uid, password,
    'calendar.event', 'search_read',
    [['&',['start_datetime', '>=', '2019-09-03 00:00:00'],['stop_datetime', '<', '2019-09-10 00:00:00']]],
    {'fields': ['allday', 'start_datetime', 'start_date', 'stop_datetime'], 'limit': 5})

但是我得到的记录超出了请求的日期范围。

我也尝试使用日期而不是日期时间(当事件标记为全天时使用此字段)但效果不佳。

我使用硬编码字符串只是为了测试。最终我会使用这样的东西:

datetime.today().strftime("%Y-%m-%d %H:%M:%S")

如何只获取所需日期范围内的数据?

我刚刚找到了解决方案。

我试图在我的域中使用 start_datestart_datetime 但实际上 另一个名为 start 的字段工作正常(或 stop 就此而言,如果停止日期是您要查找的日期)。

start_datestart_datetime 相反,它是 存储的 字段,因此可以在域内使用。

这是修改后的请求的样子:

models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
test = models.execute_kw(db, uid, password,
    'calendar.event', 'search_read',
    [[['start', '>=', '2019-09-01 00:00:00'],['start', '<=', '2019-09-08 00:00:00']]],
    {'fields': ['name', 'allday', 'start', 'stop']})

感谢@Elegant Odoo 的帮助并推动我走上正轨。