我一直致力于在OpenERP 7.0中开发模块。我一直在使用Python和Eclipse IDE进行开发。我想知道OpenERP开发中self.browse()
和self.pool.get()
之间的区别。
感谢。
答案 0 :(得分: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
`
答案 1 :(得分:7)
self.pool.get
用于从正在使用的数据库的注册表池中获取orm模型的Singleton实例。 self.browse
是orm模型返回浏览记录的方法。
作为一个粗略的类比,将self.pool.get
视为获取数据库游标,并将self.browse
视为Id的记录的sql选择。请注意,如果您传递一个浏览整数,则会获得单个浏览记录,如果您传递一个ID列表,则会获得一个浏览记录列表。