我尝试使用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也可以正常工作,而不是字符串代码。谢谢!
答案 0 :(得分:1)
在模型product.product
code
字段中是functional field/compute field。
这些类型的字段默认为 Not Searchable 。
但你可以将商店标记为真,然后搜索它。
注意:有商店标记商店的优点和错误
答案 1 :(得分:1)
感谢Prakash Sharma的帮助,但事实证明,让它发挥作用的实际方法是使用product.product
的字段default_code
而不是{{1}幸运的是,这是可以搜索的。根据其他人的不同,这可能会有所不同。设置,但我不愿意进入并更改数据库,我认为内部引用应该保持纯粹的设计。