diff --git a/gluon/packages/dal b/gluon/packages/dal index 63dcebbf..b07edb59 160000 --- a/gluon/packages/dal +++ b/gluon/packages/dal @@ -1 +1 @@ -Subproject commit 63dcebbf2d980dbad376342874c77bd821880354 +Subproject commit b07edb5914393cb871a5f9106018849f0889029c diff --git a/gluon/validators.py b/gluon/validators.py index 54e03cbd..af6496f2 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -645,11 +645,10 @@ class IS_IN_DB(Validator): if not [v for v in values if v not in self.theset]: return (values, None) else: - from pydal.adapters import GoogleDatastoreAdapter - def count(values, s=self.dbset, f=field): return s(f.belongs(map(int, values))).count() - if GoogleDatastoreAdapter is not None and isinstance(self.dbset.db._adapter, GoogleDatastoreAdapter): + + if self.dbset.db._adapter.dbengine == "google:datastore": range_ids = range(0, len(values), 30) total = sum(count(values[i:i + 30]) for i in range_ids) if total == len(values):