...
Alte API | Neue API | ||||
---|---|---|---|---|---|
Imports: from openerp.osv import osv, Klassenkopf: class myclass(osv.osv): my_pool = self.pool.get('mymodel') | from openerp odoo import models, class myclass(models.Model): my_pool = self.env['mymodel'] | ||||
Search: self.pool.get('mymodel').search(cr,uid,[('field','=', myfield)]) .search gibt id(s) zurück (erst durch ein browse wird das zu der ID zugehörige Objekt zurückgegeben) Abfrage auf Vorhandensein der Auswertung eines .search: if my_id: | self.env['mymodel'].search([('field','=', myfield)]) cr,uid entfallen, sind im Objekt self enthalten und können per self._ids / self._uid angesprochen werden. .search gibt Objekt(e) zurück (browse nicht mehr notwendig) if len(myobject) > 0: | ||||
Felddefinition: _columns = { | my_field = fields.Char('My field') | ||||
my_pool.write(cr,uid,my_id) dazu äquivalent unlink() | my_object.write() oder my_pool.write(my_object.id) | ||||
|
| ||||
Verwendung und Überprüfung der Dekoratoren: Bei der Konvertierung von Odoo 8 auf Odoo 10 ist es wichtig die Dekoratoren zu überprüfen, notfalls diese auch hinzuzufügen (siehe neue API). So sieht in der alten API ein Methodenaufruf folgendermaßen aus: def myfunction(self, cr, uid, ids, context): | @api.multi def myfunction(self): Hierbei ist es wichtig den @api.multi Dekorator zu verwenden. Ohne diesen Dekorator wird ein Odoo Error ausgelöst: TypeError: myfunction() takes exactly 1 argument (2 given) |
...