Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
many2one field by default displays either
name field or the field which is defined in
_rec_name. If you want to display value of other fields then you need to override
name_get method in your object.
For example I want to display two fields (name, name2) in my many2one field:
def name_get(self, cr, uid, ids, context=None): if not len(ids): return  res = [(r['id'], r['name'] and '%s [%s]' % (r['name'], r['name2']) or r['name'] ) for r in self.read(cr, uid, ids, ['name', 'name2'], context=context) ] return res
You may refer: ORM Method: name_get.
You need to override the name_get function for the class.
By default this function returns either the value of name or the value of the field specified in _rec_name.
Product Category gets composite values this way.
There is a function, overriding the default, at
def name_get(self, cr, uid, ids, context=None): if isinstance(ids, (list, tuple)) and not len(ids): return  if isinstance(ids, (long, int)): ids = [ids] reads = self.read(cr, uid, ids, ['name','parent_id'], context=context) res =  for record in reads: name = record['name'] if record['parent_id']: name = record['parent_id']+' / '+name res.append((record['id'], name)) return res
About This Community
This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.Register
Odoo Training Center
Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.Test it now
|Asked: 12/25/13, 9:52 AM|
|Seen: 3600 times|
|Last updated: 3/16/15, 8:10 AM|