Фильтр по «коду» с использованием API продукта odoo

Я пытаюсь отфильтровать по определенному коду продукта, используя PHP API ODOO. Если я отфильтрую 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')
));

Кто-нибудь знает, почему это может происходить, пожалуйста? Он также отлично работает, используя целочисленный идентификатор, но не строковый код. Спасибо!

0

Решение

В модели product.product code поле является функциональное поле / вычислительное поле .

Этот тип поля Не для поиска по умолчанию.

Но вы можете отметить store = True и найти его.

ПРИМЕЧАНИЕ: есть плюсы и минусы маркировки магазина = True

1

Другие решения

Спасибо Пракаш Шарме за помощь, но оказывается, что реальный способ заставить его работать — это использовать product.productполе default_code скорее, чем code, который, к счастью, доступен для поиска. Это может отличаться в зависимости от настроек других, но я не хотел заходить и менять базу данных, и я думаю, что внутренняя ссылка должна быть чистой, как это было задумано.

1

По вопросам рекламы [email protected]