Traversing recordset relations
When working with a recordset of length 1
, the various fields are available as record attributes. Relational attributes (One2many
, Many2one
, and Many2many
) are also available with values that are recordsets too. When working with recordsets with more than one record, the attributes cannot be used.
This recipe shows how to use the mapped()
method to traverse recordset relations; we will write two methods performing the following operations:
Retrieving the e-mails of all contacts of a single partner company passed as an argument
Retrieving the various companies to which some contact partners are related
Getting ready
We will be reusing the simplified Partner model shown in the Create new records recipe of this chapter.
How to do it…
To write the partner manipulation methods, you need to perform the following steps:
Define a method called
get_email_addresses()
:@api.model def get_email_addresses(self, partner): partner.ensure_one()
Call
mapped()
to get the...