查询模型

来自Odoo大V社-odoo中文开发手册
7017511讨论 | 贡献2017年12月26日 (二) 08:40的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

对于self,我们只能访问该方法的记录集。但self.env环境引用允许我们访问任何其他模型。例如,self.env['res.partner'] 返回对合作伙伴模型的引用(这是实际上一个空记录集)。然后我们可以使用search()或browse()生成记录集。


search()方法获取一个域表达式并返回一个记录集记录匹配这些条件。空域将返回所有记录。有关域表达式的更多细节请参阅 第6章节 视图-设计用户界面。如果模型具有active的特殊字段,默认情况下只有active=True的记录才会被考虑。

这里有一些可选的关键字参数,如下所示︰

 order用作ORDER BY条件的数据库查询字符串。这通常是一个以逗号分隔的字段名列表。  limit设置要检索的最大记录数量。  offset忽略了第一个n个结果;它可以用于limit查询一段时间的记录

有时候我们只需要知道记录的数量条件。为此,我们可以使用search_count()来返回记录 计数而不是记录集。它节省了检索要计数记录列表的成本,所以当我们还没有记录集的时候就更有效率了,只需要计算记录的数量。 browse()方法获取返回一个记录集IDs或单个ID的列表方法。这我们想要已经很方便的记录IDs。

这里展示了一些使用示例︰

>>> self.env['res.partner'].search([('name', 'like', 'Ag')])
res.partner(7, 51)
>>> self.env['res.partner'].browse([7, 51])
res.partner(7, 51)
 

上一节:使用记录集 下一节:单例模式