+ def __init__(self, *args, **kwargs):
+ super(Query, self).__init__(*args, **kwargs)
+ self.connection = ldapdb.connection
+
+ def get_count(self):
+ filterstr = ''.join(['(objectClass=%s)' % cls for cls in self.model.object_classes])
+ sql, params = self.where.as_sql()
+ filterstr += sql
+ filterstr = '(&%s)' % filterstr
+
+ try:
+ vals = ldapdb.connection.search_s(
+ self.model.base_dn,
+ ldap.SCOPE_SUBTREE,
+ filterstr=filterstr,
+ attrlist=[],
+ )
+ except:
+ raise self.model.DoesNotExist
+
+ return len(vals)
+