X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=ldapdb%2Fmodels%2Fquery.py;h=5b7e6afdd40ff7d49aee800d30a59bbd75aeabe7;hb=a215a2ba69e247e614fa4cffda46ced4e51706bb;hp=d0958b18c4386bb38c019327c293c7d84f8c29d4;hpb=a6255cb185ff6ce55d8760ef9b3aefbb9ddc4194;p=matthijs%2Fupstream%2Fdjango-ldapdb.git diff --git a/ldapdb/models/query.py b/ldapdb/models/query.py index d0958b1..5b7e6af 100644 --- a/ldapdb/models/query.py +++ b/ldapdb/models/query.py @@ -103,8 +103,13 @@ class Compiler(object): else: negate = False field = query.model._meta.get_field(fieldname) - attr_x = field.from_ldap(x[1].get(field.db_column, []), connection=self.connection).lower() - attr_y = field.from_ldap(y[1].get(field.db_column, []), connection=self.connection).lower() + attr_x = field.from_ldap(x[1].get(field.db_column, []), connection=self.connection) + attr_y = field.from_ldap(y[1].get(field.db_column, []), connection=self.connection) + # perform case insensitive comparison + if hasattr(attr_x, 'lower'): + attr_x = attr_x.lower() + if hasattr(attr_y, 'lower'): + attr_y = attr_y.lower() val = negate and cmp(attr_y, attr_x) or cmp(attr_x, attr_y) if val: return val @@ -182,14 +187,14 @@ class Query(BaseQuery): super(Query, self).__init__(*args, **kwargs) self.connection = ldapdb.connection - def get_count(self): + def get_count(self, using=None): 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 = self.connection.search_s( + vals = ldapdb.connection.search_s( self.model.base_dn, ldap.SCOPE_SUBTREE, filterstr=filterstr,