diff --git a/gluon/dal.py b/gluon/dal.py index 73783a45..1aa424aa 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -6876,8 +6876,8 @@ class Row(object): key=str(k) _extra = self.__dict__.get('_extra', None) if _extra is not None: - v = _extra.get(key, None) - if v is not None: + v = _extra.get(key, r'[__+-+_key_not_found_+-+__]') + if v != r'[__+-+_key_not_found_+-+__]': return v m = REGEX_TABLE_DOT_FIELD.match(key) if m: diff --git a/gluon/tests/test_dal.py b/gluon/tests/test_dal.py index ab444958..8a83282a 100644 --- a/gluon/tests/test_dal.py +++ b/gluon/tests/test_dal.py @@ -387,6 +387,10 @@ class TestExpressions(unittest.TestCase): self.assertEqual(db.tt.insert(aa=3), 3) self.assertEqual(db(db.tt.aa == 3).update(aa=db.tt.aa + 1), 1) self.assertEqual(db(db.tt.aa == 4).count(), 1) + self.assertEqual(db(db.tt.aa == -2).count(), 0) + sum = (db.tt.aa + 1).sum() + self.assertEqual(db(db.tt.aa == 2).select(sum).first()[sum], 3) + self.assertEqual(db(db.tt.aa == -2).select(sum).first()[sum], None) db.tt.drop()