2016-04-26 15 views
0

odooのPHP APIを使用して特定の製品コードでフィルタリングしようとしています。odooの製品APIを使用して 'コード'でフィルタを抽出

$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') 
)); 

を...しかし、私は、コードによってフィルタリングするとき、それは本質的に任意のフィルタを無視して、すべての結果を返します:私はqty_available > 0でフィルタする場合それが正常に動作し、これがかもしれ理由

$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を使用しても問題ありません。ありがとう!

答えて

1

おかげであるが、それは仕事にそれを得るために実際の方法を使用したことを判明codeではなくproduct.productのフィールドdefault_codeが検索可能です。これは他人の設定に応じて異なるかもしれませんが、私はデータベースを入れ替えようとは考えていませんでした。私は、内部参照が設計通りに純粋に保たれるべきだと思います。

1

product.productcodeフィールドはfunctional field/compute fieldです。

これらのフィールドのタイプは、デフォルトではです。

ただし、store = Trueとマークして検索することができます。

注:そこ長所だけでなく、詐欺の店をマークする= Trueの彼の助けのためのプラカシュ・シャルマに

+0

あなたの答えに感謝します。昨日はodooでの私の最初の経験でしたので、インデックスできないフィールドのような細部については気づいていませんでした。 'store = True'の短所は何ですか? –

+0

また、フィールドをフロントエンドから検索可能に設定することはできますか、APIを介してのみアクセスできますか? –

+0

storeの真偽は何ですか= True:計算フィールドがstore = Trueとしてマークされると、それを計算しません。これを処理するために、計算関数で@ api.dependsを使用しなければなりません。依存フィールドの変更。 – prakash

関連する問題