mapped()

Source: https://www.odoo.com/fr_FR/forum/aide-1/question/whats-is-this-self-mapped-id-124315

La fonction .mapped() simplifie l'extraction d'un champ d'un recordset sous forme de liste.

Par exemple pour extraire toutes les valeurs du champ email depuis un résultat de recherche, au lieu de faire comme ceci :

email_list = []
domain     = [('email','not in',[False,None])]
 
for rec in self.env['res.partner'].search(domain):
    if rec.email:
        email_list.append(rec.email)
 
print(email_list)
>>> [u'john@gmail.com',u'suzy@gmail.com',u'bob@hotmail.com']

Faire comme ceci :

domain = [('email','not in',[False,None])]
 
records = self.env['res.partner'].search(domain)
email_list = records.mapped('email')
 
print(email_list)
>>> [u'john@gmail.com',u'suzy@gmail.com',u'bob@hotmail.com']