if isinstance(item, WhereNode):
bits.append(item.as_sql())
continue
- constraint, x, y, values = item
+
+ constraint, lookup_type, y, values = item
+ comp = get_lookup_operator(lookup_type)
if hasattr(constraint, "col"):
# django 1.2
- comp = get_lookup_operator(constraint.lookup_type)
- clause = "(%s%s%s)" % (constraint.col, comp, values)
+ column = constraint.col
+ if lookup_type == 'in':
+ equal_bits = [ "(%s%s%s)" % (column, comp, value) for value in values ]
+ clause = '(|%s)' % ''.join(equal_bits)
+ else:
+ clause = "(%s%s%s)" % (constraint.col, comp, values)
else:
# django 1.1
(table, column, db_type) = constraint
- comp = get_lookup_operator(x)
equal_bits = [ "(%s%s%s)" % (column, comp, value) for value in values ]
if len(equal_bits) == 1:
clause = equal_bits[0]
else:
clause = '(|%s)' % ''.join(equal_bits)
+
if self.negated:
bits.append('(!%s)' % clause)
else:
yield row
class QuerySet(BaseQuerySet):
- def __init__(self, model=None, query=None):
+ def __init__(self, model=None, query=None, using=None):
if not query:
- query = Query(model, None, WhereNode)
+ import inspect
+ spec = inspect.getargspec(Query.__init__)
+ if len(spec[0]) == 3:
+ # django 1.2
+ query = Query(model, WhereNode)
+ else:
+ # django 1.1
+ query = Query(model, None, WhereNode)
super(QuerySet, self).__init__(model, query)