2017-02-14 12 views
0

Что отображается и как использовать это в odoo 9?Использовать сопоставленные() в odoo 9

Любой простой пример?

На Официальной странице пребывания:

# returns a list of names 
records.mapped('name') 

# returns a recordset of partners 
record.mapped('partner_id') 

# returns the union of all partner banks, with duplicates removed 
record.mapped('partner_id.bank_ids') 
+0

Этот пример швов прозрачный. Если нет, вы должны хорошо понимать, что такое набор записей. – Majikat

ответ

5

В основном это удобный метод для возврата набора записей (списков объектов или значений). Допустим, вам нужен список всех адресов электронной почты партнеров, соответствующих определенному домену. Вы могли бы легко выполнить это так.

domain = [('email','not in',[False,None])] 
records = self.env['res.partner'].search(domain) 
email_list = records.mapped('email') 

print(email_list) 
>>> [u'[email protected]',u'[email protected]',u'[email protected]'] 

Таким образом, вам не нужно делать это

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'[email protected]',u'[email protected]',u'[email protected]'] 

В приведенном выше примере odoo бы итерацию через все записи и вернул электронную почту от каждой записи в виде списка.

Чтобы вместо того, чтобы перебирать все записи, чтобы получить одно и то же поле из каждой записи, вы можете использовать отображаемый.

+0

Спасибо за ответ, но я до сих пор не понимаю, что это за преимущества! – Pointer

+0

Я изменил это, чтобы сделать это более ясным. –

+0

@PhillipStack Спасибо Филлипу много .... –

Смежные вопросы