Querying data with recordsets and domains
Odoo business logic will need to read data from the database to perform actions based on it. This is done through recordsets, which query the raw data and expose it as Python objects we can manipulate.
Odoo Python will usually be running in a class method, where self
represents the recordset to work with. In some cases, we need to create recordsets for other models. For that, we should get a reference to the models and then query it to create the recordset.
The environment object, usually accessible as self.env
, holds references to all the models available, and these can be accessed using dictionary-like syntax. For example, to get a reference to the partner
model, use self.env['res.partner']
or self.env.get('res.partner')
. This model reference can then be used to create recordsets, as we will see next.
Creating recordsets
The search()
method takes a domain expression and returns a recordset with the records...