diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 579178c36cb..abd43777155 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -985,11 +985,15 @@ class ir_model_data(osv.osv): def _update_dummy(self,cr, uid, model, module, xml_id=False, store=True): if not xml_id: return False + id = False try: - id = self.read(cr, uid, [self._get_id(cr, uid, module, xml_id)], ['res_id'])[0]['res_id'] - self.loads[(module,xml_id)] = (model,id) - except: - id = False + # One step to check the ID is defined and the record actually exists + record = self.get_object(cr, uid, module, xml_id) + if record: + id = record.id + self.loads[(module,xml_id)] = (model,id) + except Exception: + pass return id def clear_caches(self):