OpenERP开发中self.browse()和self.pool.get()之间有什么区别?

ars*_*wed 4 python odoo

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

谢谢.

Sta*_*kUP 16

要按ID访问记录,您需要使用ORM的浏览方法

def some_moethod(self, cr, uid, ids):
    self.browse(cr, uid, ids) // same class
    do_some_Stuff
    return something
Run Code Online (Sandbox Code Playgroud)

您可以在同一个类中编写一个方法,当您想要浏览其记录但是如果您想要从另一个类浏览记录时,在这种情况下首先需要使用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
Run Code Online (Sandbox Code Playgroud)

`


Adr*_*all 7

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

作为一个粗略的类比,self.pool.get可以将其视为获取数据库游标以及self.browse通过Id选择记录的SQL.请注意,如果您传递一个浏览整数,则会获得单个浏览记录,如果您传递一个ID列表,则会获得一个浏览记录列表.