マップされているものとその使い方odoo 10? odoo 10でマップとフィルタを使う方法は? exempleodooでmapped()を使用する10
結果= SUM(order.order_line.filtered( ラムダR:r.state = "状態").mapped( "FIELD_NAME") !)
および他によるFIELD1のMULT各値同じ表のfield2はすべての合計を返します。フィルタ
マップされているものとその使い方odoo 10? odoo 10でマップとフィルタを使う方法は? exempleodooでmapped()を使用する10
結果= SUM(order.order_line.filtered( ラムダR:r.state = "状態").mapped( "FIELD_NAME") !)
および他によるFIELD1のMULT各値同じ表のfield2はすべての合計を返します。フィルタ
は完全にOdoo docsに記載されて:
マッピングさ():、レコードセット内の各レコードに設けられた関数を適用した結果がレコードである場合にレコードセットを返します。提供される関数は、フィールド値を取得する文字列にすることができます。あなたのコードで
# returns a list of names
records.mapped('name')
order
からfield_name
のリストを返しますorder.order_line.filtered(lambda r: r.state != "state").mapped("field_name")
表現。その後、sum
python関数が合計を行います。
は、基準(あなたのケースでは、オーダーラインが状態イマイチ「状態」に一致レコードセットを返します。あなたがレコードセットにマッピングされて使用する場合
、私はFIELD_NAMEでリストを返します。レコードのそれぞれのフィールドがmany2oneであれば、私は重複を削除します
例、あなたは「数量」というフィールドを持つレコードセットを持って
record 1: quantity = 5
record 2: quantity = 6
record 3: quantity = 10
フィルターあなたが持つかもしれ後。。:
res = sale.order.line(1,2,3,)
マッピングされて適用するとき:彼らはフロート/ int型である場合に
quantities_list = res.mapped('quantity') #[5, 6, 10]
ので、合計は21を返しますが。
希望すると助かります!
ありがとう、odoo docsのために私はそのrecords.mapped(ラムダr.field1 + r.field2)が私のために働いている使用しています。 –