按代码过滤'使用odoo产品API

时间:2016-04-26 10:16:05

标签: php openerp odoo-9

我尝试使用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')
));

...但是当我按代码过滤时,它会返回所有结果,基本上忽略任何过滤器:

$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也可以正常工作,而不是字符串代码。谢谢!

2 个答案:

答案 0 :(得分:1)

在模型product.product code字段中是functional field/compute field

  

这些类型的字段默认为 Not Searchable

但你可以将商店标记为真,然后搜索它。

注意:有商店标记商店的优点和错误

答案 1 :(得分:1)

感谢Prakash Sharma的帮助,但事实证明,让它发挥作用的实际方法是使用product.product的字段default_code而不是{{1}幸运的是,这是可以搜索的。根据其他人的不同,这可能会有所不同。设置,但我不愿意进入并更改数据库,我认为内部引用应该保持纯粹的设计。