diff --git a/addons/web_editor/models/ir_ui_view.py b/addons/web_editor/models/ir_ui_view.py index 37228224971..612abc1596a 100644 --- a/addons/web_editor/models/ir_ui_view.py +++ b/addons/web_editor/models/ir_ui_view.py @@ -128,7 +128,7 @@ class IrUiView(models.Model): @api.model def _view_obj(self, view_id): if isinstance(view_id, pycompat.string_types): - return self.env.ref(view_id) + return self.search([('key', '=', view_id)]) or self.env.ref(view_id) elif isinstance(view_id, pycompat.integer_types): return self.browse(view_id) # assume it's already a view object (WTF?) diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index 569c33ac92b..11a8fdb9a12 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -1126,7 +1126,8 @@ actual arch. return template if '.' not in template: raise ValueError('Invalid template id: %r' % template) - return self.env['ir.model.data'].xmlid_to_res_id(template, raise_if_not_found=True) + view = self.search([('key', '=', template)]) + return view and view.id or self.env['ir.model.data'].xmlid_to_res_id(template, raise_if_not_found=True) def clear_cache(self): """ Deprecated, use `clear_caches` instead. """