Glam Prestige Journal

Bright entertainment trends with youth appeal.

What is mapped and how use this in odoo 10? And how to use mapped and filter in Odoo 10? example

result = sum( order.order_line.filtered( lambda r: r.state != "state" ).mapped( "field_name" )
)

and multiply each value of field1 by other field2 in same table an return all sum.

2 Answers

Is fully documented on Odoo docs:

mapped(): applies the provided function to each record in the recordset, returns a recordset if the results are recordsets. The provided function can be a string to get field values.

# returns a list of names
records.mapped('name')

In your code the expression order.order_line.filtered( lambda r: r.state != "state" ).mapped( "field_name" ) returns a list of field_name from order. Then sum python function do the sum.

1

The filtered will return the recordsets that match the criteria (in your case, the order lines that the state isnt "state").

When you use mapped to the recordset, i will return a list with the field_name for each of the recordset, if the field is a many2one, it will remove duplicates.

Example, you have a recordset with a field called "quantity".

record 1: quantity = 5
record 2: quantity = 6
record 3: quantity = 10

after the filtered you may have:

res = sale.order.line(1,2,3,)

when applying mapped:

quantities_list = res.mapped('quantity') #[5, 6, 10]

so the sum will return 21 if they are float/int.

Hope it helps!

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy