Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6576|回复: 0
打印 上一主题 下一主题

记录集操作

[复制链接]

26

主题

28

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
跳转到指定楼层
楼主
发表于 2018-5-25 14:39:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 施程浩 于 2018-5-25 14:41 编辑

记录集是可迭代的,因此普通的Python工具都可以用来转换(map(),sorted(),ifilter(),...),其返回一个list或者是一个迭代器。
filtered()
返回一个仅包含满足谓词条件的记录集。这个谓词也可以是一个过滤字符串,其返回truefalse
# only keep records whose company is the current user's
records.filtered(lambda r: r.company_id == user.company_id)
# only keep records whose partner is a company
records.filtered("partner_id.is_company")
sorted()
返回一个排序过的记录集,排序根据关键字函数(key function)进行。如果没有提供key,将使用模型的默认排序:
# sort records by name
records.sorted(key=lambda r: r.name)
mapped()
使用提供的函数对记录集的每个记录进行计算,如果结果是记录集,则返回这个记录集:
# returns a list of summing two fields for each record in the set
records.mapped(lambda r: r.field1 + r.field2)
提供的函数也可以是一个字符串,用来获取字段的值
# returns a list of names
records.mapped('name')
# returns a recordset of partners
record.mapped('partner_id')------------------------返回一个记录集
# returns the union of all partner banks, with duplicates removed
record.mapped('partner_id.bank_ids')

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-20 21:38 , Processed in 0.010964 second(s), 11 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表