[FIX] ir.model.data.get_object(): raise ValueError when target record does not exist...
authorOlivier Dony <odo@openerp.com>
Tue, 22 Mar 2011 21:05:22 +0000 (22:05 +0100)
committerOlivier Dony <odo@openerp.com>
Tue, 22 Mar 2011 21:05:22 +0000 (22:05 +0100)
bzr revid: odo@openerp.com-20110322210522-os9qaarl6l9uuq41

bin/addons/base/ir/ir_model.py

index 033b010..efb6878 100644 (file)
@@ -615,7 +615,10 @@ class ir_model_data(osv.osv):
     def get_object(self, cr, uid, module, xml_id, context=None):
         """Returns a browsable record for the given module name and xml_id or raise ValueError if not found"""
         res_model, res_id = self.get_object_reference(cr, uid, module, xml_id)
-        return self.pool.get(res_model).browse(cr, uid, res_id, context=context)
+        result = self.pool.get(res_model).browse(cr, uid, res_id, context=context)
+        if not result.exists():
+            raise ValueError('No record found for unique ID %s.%s. It may have been deleted.' % (module, xml_id))
+        return result
 
     def _update_dummy(self,cr, uid, model, module, xml_id=False, store=True):
         if not xml_id: