+ if self.field:
+ params = self.field.get_db_prep_lookup(lookup_type, value,
+ connection=connection, prepared=True)
+ db_type = self.field.db_type()
+ else:
+ params = CharField().get_db_prep_lookup(lookup_type, value,
+ connection=connection, prepared=True)
+ db_type = None
+ except ObjectDoesNotExist:
+ raise EmptyShortCircuit
+
+ return (self.alias, self.col, db_type), params
+
+class WhereNode(BaseWhereNode):
+ def add(self, data, connector):
+ if not isinstance(data, (list, tuple)):
+ super(WhereNode, self).add(data, connector)
+ return
+
+ # we replace the native Constraint by our own
+ obj, lookup_type, value = data
+ if hasattr(obj, "process"):
+ obj = Constraint(obj.alias, obj.col, obj.field)
+ super(WhereNode, self).add((obj, lookup_type, value), connector)
+
+class Query(BaseQuery):
+ def get_count(self, using):
+ connection = connections[using]
+ try:
+ vals = connection.search_s(
+ self.model.base_dn,
+ self.model.search_scope,
+ filterstr=compiler.query_as_ldap(self),
+ attrlist=[],