Filtering recordsets
In some cases, you already have a recordset, but you need to operate only on some records. You can, of course, iterate on the recordset, checking for the condition on each iteration and acting depending on the result of the check. It can be easier, and in some cases, more efficient to construct a new recordset containing only the interesting records and calling a single operation on that recordset.
This recipe shows how to use the filter()
method to extract a recordset from another one.
Getting ready
We will reuse the simplified res.partner
model shown in the Create new records recipe previously. This recipe defines a method to extract partners having an e-mail address from a supplied recordset.
How to do it…
In order to extract records with an e-mail address from a recordset, you need to perform the following steps:
Define the method accepting the original recordset:
@api.model def partners_with_email(self, partners):
Define an inner predicate function:
def predicate...