使用 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' 设置,但我不愿意去输入并更改数据库,我认为内部参考应保持设计时的纯净。