fix ordering on int fields
authorjlaine <jlaine@e071eeec-0327-468d-9b6a-08194a12b294>
Mon, 31 May 2010 18:28:59 +0000 (18:28 +0000)
committerjlaine <jlaine@e071eeec-0327-468d-9b6a-08194a12b294>
Mon, 31 May 2010 18:28:59 +0000 (18:28 +0000)
git-svn-id: https://svn.bolloretelecom.eu/opensource/django-ldapdb/trunk@902 e071eeec-0327-468d-9b6a-08194a12b294

ldapdb/models/query.py

index d0958b18c4386bb38c019327c293c7d84f8c29d4..bbb46e2553f991e124bbcbc16d1ee3bed0d71beb 100644 (file)
@@ -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