Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
91432 Vistas

Why self.env is used for searching or browsing? How it works ?

Can any one tell me why it is used and its working .


Avatar
Descartar
Mejor respuesta

Hi,

env(Environment) in new API is to provide an encapsulation around cursor, user_id, model, and context, Recordset and caches.

It evades the use of infamous function signature def afun(self, cr, uid, ids, context=None): and in new API its def afun(self):

And if you want to call ORM method directly from an object you can use self.env['obj'].method   instead of self.method

For more about env:-  Link

Hope this helps.


Avatar
Descartar
Autor

Thank you for the reply.And what i understood is that, the self.env environment reference allows us to access any other model. For example, self.env['res.partner'] returns a reference to the Partners model. We can then use search() or browse() on it to generate recordsets.

Mejor respuesta

self.env['model.name'] is used instead of self.pool.get('model.name') in the old api, to access the recordset of a particular model. In the old api, with search and browse you had pass cr, uid, context seperately, whereas with self.env it is implicit.

An environment wraps data for ORM records:

  • 'cr', the current database cursor.

  • 'uid', the current user id.

  • 'context', the current context dictionary.

You may check this link:

http://odoo-new-api-guide-line.readthedocs.org/en/latest/environment.html#environment 

Avatar
Descartar

It's a shame the link from www.mindissoftware.com is returning a 404.

link removed