diff --git a/odoo/addons/base/models/ir_qweb_fields.py b/odoo/addons/base/models/ir_qweb_fields.py
index 431a95d607a..3efe3dc30bc 100644
--- a/odoo/addons/base/models/ir_qweb_fields.py
+++ b/odoo/addons/base/models/ir_qweb_fields.py
@@ -781,15 +781,16 @@ class Contact(models.AbstractModel):
opsep = Markup('
')
value = value.sudo().with_context(show_address=True)
+ display_name = value.display_name or ''
# Avoid having something like:
# display_name = 'Foo\n \n' -> This is a res.partner with a name and no address
# That would return markup('
') as address. But there is no address set.
- if any(elem.strip() for elem in value.display_name.split("\n")[1:]):
- address = opsep.join(value.display_name.split("\n")[1:]).strip()
+ if any(elem.strip() for elem in display_name.split("\n")[1:]):
+ address = opsep.join(display_name.split("\n")[1:]).strip()
else:
address = ''
val = {
- 'name': value.display_name.split("\n")[0],
+ 'name': display_name.split("\n")[0],
'address': address,
'phone': value.phone,
'mobile': value.mobile,
diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py
index a57193dfe6c..07fa58091ea 100644
--- a/odoo/addons/base/tests/test_qweb.py
+++ b/odoo/addons/base/tests/test_qweb.py
@@ -1644,6 +1644,21 @@ class TestQWebBasic(TransactionCase):
markupsafe.Markup(f'
{p_instruction}
'), "Should have the processing instruction") + def test_render_widget_contact(self): + u = self.env['res.users'].create({ + 'name': 'Test', + 'login': 'test@example.com', + }) + u.name = "" + view1 = self.env['ir.ui.view'].create({ + 'name': "dummy", + 'type': 'qweb', + 'arch': """ +