Php 按'过滤;代码';使用odoo产品API
我正在尝试使用odoo的PHP api按特定的产品代码进行过滤。如果我按Php 按'过滤;代码';使用odoo产品API,php,openerp,odoo-9,Php,Openerp,Odoo 9,我正在尝试使用odoo的PHP api按特定的产品代码进行过滤。如果我按quantity\u available>0进行过滤,它可以正常工作: $records = $models->execute_kw($db, $uid, $pass, 'product.product', 'search_read', array( array( array('qty_available', '>', 0), ), ), array( 'fields' => array
quantity\u 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,而不是字符串代码。谢谢 在模型产品中。产品字段是
默认情况下,这些类型的字段不可搜索
但是您可以将store标记为True,然后进行搜索
注意:在型号产品中标记store=True既有优点,也有缺点。product
字段是正确的
默认情况下,这些类型的字段不可搜索
但是您可以将store标记为True,然后进行搜索
注意:由于Prakash Sharma的帮助,将store=True标记为有利也有弊,但事实证明,使其正常工作的实际方法是使用产品。产品的字段默认代码
,而不是代码
,幸运的是可以搜索。这可能会因其他人的设置而有所不同,但我不愿意进去更改数据库,我认为内部参考应该保持其设计的纯粹性。感谢Prakash Sharma的帮助,但事实证明,让它工作的实际方法是使用product.product
的字段default\u code
,而不是code
,幸运的是,这是可以搜索的。这可能会因其他人的设置而有所不同,但我不愿意进去更改数据库,我认为内部参考应保持其设计的纯粹性。我明白了,谢谢你的回答。昨天是我第一次体验奥多,所以我不知道像不可转位场这样的细节。store=True
的缺点是什么?另外,一个字段可以通过前端设置为可搜索的,还是我只能通过API访问它?store=True的缺点是什么:一旦一个计算字段被标记为store=True,它将不再计算,为了处理这个问题,您必须在compute函数中使用@api.depends,以便在depends字段的更改中调用它。我明白了,谢谢您的回答。昨天是我第一次体验奥多,所以我不知道像不可转位场这样的细节。store=True
的缺点是什么?另外,一个字段可以通过前端设置为可搜索的,还是我只能通过API访问它?store=True的缺点是什么:一旦一个计算字段被标记为store=True,它将不再计算,为了处理这个问题,您必须在compute函数中使用@api.depends,以便在depends字段的更改中调用它。