From 5ae682b703afdd04bb80ee9955b4acb976c80e50 Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Thu, 26 Jan 2012 11:12:52 -0600 Subject: [PATCH] possible fix for issue 637 --- VERSION | 2 +- gluon/validators.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index 435e1d55..0d1f5cb5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 1.99.4 (2012-01-26 11:06:17) stable +Version 1.99.4 (2012-01-26 11:12:37) stable diff --git a/gluon/validators.py b/gluon/validators.py index 515cbce4..276013da 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -539,15 +539,16 @@ class IS_NOT_IN_DB(Validator): if value in self.allowed_override: return (value, None) (tablename, fieldname) = str(self.field).split('.') - field = self.dbset.db[tablename][fieldname] + table = self.dbset.db[tablename] + field = table[fieldname] rows = self.dbset(field == value, ignore_common_filters = self.ignore_common_filters).select(limitby=(0, 1)) if len(rows) > 0: if isinstance(self.record_id, dict): for f in self.record_id: if str(getattr(rows[0], f)) != str(self.record_id[f]): return (value, translate(self.error_message)) - elif str(rows[0]._id) != str(self.record_id): - return (value, translate(self.error_message)) + elif str(rows[0][table._id.name]) != str(self.record_id): + return (value, translate(self.error_message)) return (value, None)