diff options
| author | rga <rga@rga-desktop> | 2010-05-19 18:45:36 +0530 |
|---|---|---|
| committer | rga <rga@rga-desktop> | 2010-05-19 18:45:36 +0530 |
| commit | 8e08985eea847f8e7bbad5e33ba5fb87caf00a3c (patch) | |
| tree | cfafb82b3177f3ed9aed33c7c4281b235c198f89 | |
| parent | 321c9415ab209ddb32a8f5fe7c6128fd57d80d65 (diff) | |
Improve integrity error message
bzr revid: rga@rga-desktop-20100519131536-s82lok98qtrvu2ab
| -rw-r--r-- | bin/osv/osv.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bin/osv/osv.py b/bin/osv/osv.py index a528d418089..fb6a5066814 100644 --- a/bin/osv/osv.py +++ b/bin/osv/osv.py @@ -65,7 +65,16 @@ class osv_pool(netsvc.Service): for key in self._sql_error.keys(): if key in inst[0]: self.abortResponse(1, 'Constraint Error', 'warning', self._sql_error[key]) - self.abortResponse(1, 'Integrity Error', 'warning', inst[0]) + if inst.pgcode == "23502": + context = inst.pgerror.split('"public".')[1] + table = context.split('"')[1] + model = table.replace("_",".") + if not self.obj_pool.get(model,False): + model = table + msg = 'You can not delete current record because it refered by ' + model + self.abortResponse(1, 'Integrity Error', 'warning', msg) + else: + self.abortResponse(1, 'Integrity Error', 'warning', inst[0]) except Exception, e: self.logger.exception("Uncaught exception") raise |
