【发布时间】:2019-09-04 07:35:09
【问题描述】:
我正在尝试使用 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")
如何仅从所需的日期范围获取数据?
【问题讨论】:
-
您可以删除
&,它是默认应用的,您的代码应该可以完美运行!!我这里没看出问题,能把整个代码放上来吗? -
只需删除
&并确保您没有覆盖 search_read 或任何更改传递给该方法的域的方法。只需调试更多以查看在 models.Model 类中传递给搜索读取的最终域是什么。在 search_read 方法中设置一个断点,看看传递给它的域是什么 -
我不确定,但我看到
__last_update和request_date之间的区别在于request_date被存储而__last_update没有被存储。 -
使用你将在 Odoo api 教程中找到的 common.version() 示例
-
我以为它会返回版本日期对不起,我只想知道这个字段是否被计算,如果域工作正常,请尝试将过滤器与其他字段一起使用,然后这个字段不存储在数据库中,因此您必须弄清楚如何使用其他字段更改您的域
标签: python odoo odoo-8 xml-rpc