diff --git a/addons/website_google_map/controllers/main.py b/addons/website_google_map/controllers/main.py index 169eb46f7c5..092fab26a03 100644 --- a/addons/website_google_map/controllers/main.py +++ b/addons/website_google_map/controllers/main.py @@ -43,7 +43,7 @@ class GoogleMap(http.Controller): partner_data["partners"].append({ 'id': partner.id, 'name': escape(partner.name), - 'address': escape('\n'.join(partner.display_name.split('\n')[1:])), + 'address': escape('\n'.join(partner.name_get()[0][1].split('\n')[1:])), 'latitude': escape(str(partner.partner_latitude)), 'longitude': escape(str(partner.partner_longitude)), }) diff --git a/odoo/addons/base/models/ir_qweb_fields.py b/odoo/addons/base/models/ir_qweb_fields.py index 81e4c700d1a..1220b51a7c6 100644 --- a/odoo/addons/base/models/ir_qweb_fields.py +++ b/odoo/addons/base/models/ir_qweb_fields.py @@ -643,7 +643,7 @@ class Contact(models.AbstractModel): opf = options and options.get('fields') or ["name", "address", "phone", "mobile", "email"] opsep = options and options.get('separator') or "\n" value = value.sudo().with_context(show_address=True) - name_get = value.display_name + name_get = value.name_get()[0][1] val = { 'name': name_get.split("\n")[0], diff --git a/odoo/models.py b/odoo/models.py index 6a498753376..fc8f1863f62 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -1560,6 +1560,17 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): @api.depends(lambda self: (self._rec_name,) if self._rec_name else ()) def _compute_display_name(self): + """Compute the value of the `display_name` field. + + In general `display_name` is equal to calling `name_get()[0][1]`. + + In that case, it is recommended to use `display_name` to uniformize the + code and to potentially take advantage of prefetch when applicable. + + However some models might override this method. For them, the behavior + might differ, and it is important to select which of `display_name` or + `name_get()[0][1]` to call depending on the desired result. + """ names = dict(self.name_get()) for record in self: record.display_name = names.get(record.id, False)