Kar*_*med 2 python openerp python-2.7 odoo-10
是什么映射以及如何在odoo 10中使用它?以及如何在odoo 10中使用映射和过滤器?为例
result = sum(order.order_line.filtered(lambda r:r.state!="state").mapped("field_name"))
并且将field1的每个值与同一表中的其他field2一起返回全部和.
过滤后将返回符合条件的记录集(在您的情况下,状态不是"状态"的订单行).
当您使用映射到记录集时,我将为每个记录集返回一个带有field_name的列表,如果该字段是many2one,我将删除重复项.
例如,您有一个记录集,其中包含一个名为"quantity"的字段.
record 1: quantity = 5
record 2: quantity = 6
record 3: quantity = 10
Run Code Online (Sandbox Code Playgroud)
过滤后你可能有:
res = sale.order.line(1,2,3,)
Run Code Online (Sandbox Code Playgroud)
在应用映射时:
quantities_list = res.mapped('quantity') #[5, 6, 10]
Run Code Online (Sandbox Code Playgroud)
所以如果它们是float/int,则总和将返回21.
希望能帮助到你!
在Odoo docs上有完整记录:
mapping():将提供的函数应用于记录集中的每个记录,如果结果是记录集,则返回一个记录集。提供的函数可以是用于获取字段值的字符串。
# returns a list of names
records.mapped('name')
Run Code Online (Sandbox Code Playgroud)
在您的代码中,表达式order.order_line.filtered( lambda r: r.state != "state" ).mapped( "field_name" )返回field_namefrom 的列表order。然后sumpython函数求和。
| 归档时间: |
|
| 查看次数: |
4408 次 |
| 最近记录: |