如何将 "and" 搜索运算符添加到 odoo XML-RPC api 调用中?
How to add "and" search operators to odoo XML-RPC api calls?
我有一个搜索语句如下
models.execute_kw(db, uid, password,'stock.move', 'search_read', [[['origin','=','INVOICE ## 44'],
['picking_type_id', '=', 2],
['product_id', '=', 123],
['state', '=', 'cancel']]],
)
我希望能够搜索已取消和分配的记录。我尝试了以下操作。
models.execute_kw(db, uid, password,'stock.move', 'search_read', [[['origin','=','INVOICE ## 44'],
['picking_type_id', '=', 2],
['product_id', '=', 123],
['|', ['state', '=', "cancel"], ['state', '=', "assigned"]]]
)
但是,这个 returns 列表不是正确的运算符的错误。我查看了文档 https://www.odoo.com/documentation/13.0/developer/reference/addons/orm.html,虽然他们有示例,但他们没有清楚地解释如何实现多个相同状态或其他属性。
如果我们想检查记录的多状态,我们可以简单地使用in
运算符。
试试这个,
[['state', 'in', ["cancel", "assigned"]]]
您可以在 link 下找到 part:
Domain criteria can be combined using logical operators in prefix
form:
'&'
logical AND, default operation to combine criteria following one
another. Arity 2 (uses the next 2 criteria or combinations).
'|'
logical OR, arity 2.
'!'
logical NOT, arity 1.
因此,对于您的示例,您可以删除 |
(OR) 运算符,因为 AND 是默认值,不得设置。或者,您可以将 |
替换为 &
,如果您觉得后者更具可读性的话。
对于其他遇到类似问题的人,上面的 Kenly 能够解决它,这是一个语法问题。我无法在网上的任何地方找到一个明确的例子,所以在这里发帖以防有人发现类似的问题。
models.execute_kw(db, uid, password,
'stock.picking', 'search_read',
[['|', ['state', '=', "cancel"], ['state', '=', "assigned"]]])
我有一个搜索语句如下
models.execute_kw(db, uid, password,'stock.move', 'search_read', [[['origin','=','INVOICE ## 44'],
['picking_type_id', '=', 2],
['product_id', '=', 123],
['state', '=', 'cancel']]],
)
我希望能够搜索已取消和分配的记录。我尝试了以下操作。
models.execute_kw(db, uid, password,'stock.move', 'search_read', [[['origin','=','INVOICE ## 44'],
['picking_type_id', '=', 2],
['product_id', '=', 123],
['|', ['state', '=', "cancel"], ['state', '=', "assigned"]]]
)
但是,这个 returns 列表不是正确的运算符的错误。我查看了文档 https://www.odoo.com/documentation/13.0/developer/reference/addons/orm.html,虽然他们有示例,但他们没有清楚地解释如何实现多个相同状态或其他属性。
如果我们想检查记录的多状态,我们可以简单地使用in
运算符。
试试这个,
[['state', 'in', ["cancel", "assigned"]]]
您可以在 link 下找到 part:
Domain criteria can be combined using logical operators in prefix form:
'&'
logical AND, default operation to combine criteria following one another. Arity 2 (uses the next 2 criteria or combinations).
'|'
logical OR, arity 2.
'!'
logical NOT, arity 1.
因此,对于您的示例,您可以删除 |
(OR) 运算符,因为 AND 是默认值,不得设置。或者,您可以将 |
替换为 &
,如果您觉得后者更具可读性的话。
对于其他遇到类似问题的人,上面的 Kenly 能够解决它,这是一个语法问题。我无法在网上的任何地方找到一个明确的例子,所以在这里发帖以防有人发现类似的问题。
models.execute_kw(db, uid, password,
'stock.picking', 'search_read',
[['|', ['state', '=', "cancel"], ['state', '=', "assigned"]]])