使用 odoo 产品 API 按 'code' 过滤
Filter by 'code' using odoo product API
我正在尝试使用 odoo 的 PHP api 按特定产品代码进行过滤。如果我按 qty_available > 0
过滤,效果很好:
$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
array(
array('qty_available', '>', 0),
),
), array(
'fields' => array('code', 'display_name', 'qty_available')
));
...但是当我按代码过滤时,它 returns 所有结果,基本上忽略任何过滤器:
$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
array(
array('code', '=', 'T-0001'),
),
), array(
'fields' => array('code', 'display_name', 'qty_available')
));
有人知道为什么会这样吗?它也可以使用整数 ID 正常工作,而不是字符串代码。谢谢!
在模型中 product.product
code
field is the functional field/compute field .
These type of field are Not Searchable by default.
但是你可以标记 store=True ,然后搜索它。
注意:将商店标记为 True 既有优点也有缺点
感谢 Prakash Sharma 的帮助,但事实证明,让它工作的实际方法是使用 product.product
's field default_code
rather than code
, which fortunately is searchable. This may be different depending on others' 设置,但我不愿意去输入并更改数据库,我认为内部参考应保持设计时的纯净。
我正在尝试使用 odoo 的 PHP api 按特定产品代码进行过滤。如果我按 qty_available > 0
过滤,效果很好:
$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
array(
array('qty_available', '>', 0),
),
), array(
'fields' => array('code', 'display_name', 'qty_available')
));
...但是当我按代码过滤时,它 returns 所有结果,基本上忽略任何过滤器:
$records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array(
array(
array('code', '=', 'T-0001'),
),
), array(
'fields' => array('code', 'display_name', 'qty_available')
));
有人知道为什么会这样吗?它也可以使用整数 ID 正常工作,而不是字符串代码。谢谢!
在模型中 product.product
code
field is the functional field/compute field .
These type of field are Not Searchable by default.
但是你可以标记 store=True ,然后搜索它。
注意:将商店标记为 True 既有优点也有缺点
感谢 Prakash Sharma 的帮助,但事实证明,让它工作的实际方法是使用 product.product
's field default_code
rather than code
, which fortunately is searchable. This may be different depending on others' 设置,但我不愿意去输入并更改数据库,我认为内部参考应保持设计时的纯净。