4

我一直致力于在 OpenERP 7.0 中开发一个模块。我一直在使用 Python 和 Eclipse IDE 进行开发。我想知道 OpenERP 开发之间的self.browse()区别self.pool.get()

谢谢。

4

2 回答 2

16

要通过 id 访问记录,您需要使用 ORM 的浏览方法

def some_moethod(self, cr, uid, ids):
    self.browse(cr, uid, ids) // same class
    do_some_Stuff
    return something

当您在要浏览其记录的同一类中编写方法时可以使用,但如果您想浏览另一个类的记录,在这种情况下,首先您需要使用 self.pool.get('another.class ') 然后你可以浏览它

例如:

def some_moethod(self, cr, uid, ids):
    self.pool.get('another.class').browse(cr, uid, ids)
    do_some_Stuff
    return something

`

于 2013-08-29T17:17:24.017 回答
8

self.pool.get用于从正在使用的数据库的注册表池中获取 orm 模型的 Singleton 实例。self.browse是orm模型返回浏览记录的方法。

作为一个粗略的类比,self.pool.get可以将其视为获取数据库游标和self.browse通过 Id 对记录进行 sql 选择。请注意,如果您传递一个整数,您将获得一个浏览记录,如果您传递一个 id 列表,您将获得一个浏览记录列表。

于 2013-08-27T05:33:41.333 回答