Odoo – How to overide ORM Method: name_get

Here is some information on Odoo – How to overide ORM Method: name_get

In HR module of Odoo, when we open Employee form view, we can see there is only one field available in order to enter Employee Name. enter employee name over here, to use it across different modules. where a reference is made to it as a many2one field of hr.employee class. Generally name field of a class appears in many2one reference of that class in another classes.  Entered name field in Employee Form displayes in many2one reference.

In one of our project we had to put three different fields namely first name, middle name and last name(first name was required field) and apart from that it was also required that the combination of provided inputs needs to be shown in many2one reference. So in this case,we had to override the existing name_get method in hr.employee class as follow.

def name_get(self,cr,uid,ids,context=None):
		res = []
		if not ids:
			return res
		if isinstance(ids, list):
			services = self.read(cr, uid, ids, ['name','middle_name','last_name'], context=context)
			for service in services:
				fn = service['name']
				mn = service['middle_name']
				ln = service['last_name']
				if fn and not mn and not ln:
					cid = fn
				elif fn and mn and ln:
					cid = fn+" "+mn+" "+ln
				elif fn and mn and not ln:
					cid = fn+" "+mn
				elif fn and ln and not mn:
					cid = fn+" "+ln
					cid = ""
				res.append((service['id'], cid))
			return res
			return res or ids
Overide_ORM1 Overide_ORM2
Here is another module where it shows separate fields for First Name, Middle Name and Last Name.               Here it shows the combined fields


For More Information on Odoo, check related Articles

Leave a Reply

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.