diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py index 5429204d63..1dddcc8c8e 100644 --- a/django/db/models/lookups.py +++ b/django/db/models/lookups.py @@ -235,13 +235,12 @@ class FieldGetDbPrepValueIterableMixin(FieldGetDbPrepValueMixin): return sql, tuple(params) +@Field.register_lookup class Exact(FieldGetDbPrepValueMixin, BuiltinLookup): lookup_name = 'exact' -Field.register_lookup(Exact) - - +@Field.register_lookup class IExact(BuiltinLookup): lookup_name = 'iexact' prepare_rhs = False @@ -253,37 +252,26 @@ class IExact(BuiltinLookup): return rhs, params -Field.register_lookup(IExact) - - +@Field.register_lookup class GreaterThan(FieldGetDbPrepValueMixin, BuiltinLookup): lookup_name = 'gt' -Field.register_lookup(GreaterThan) - - +@Field.register_lookup class GreaterThanOrEqual(FieldGetDbPrepValueMixin, BuiltinLookup): lookup_name = 'gte' -Field.register_lookup(GreaterThanOrEqual) - - +@Field.register_lookup class LessThan(FieldGetDbPrepValueMixin, BuiltinLookup): lookup_name = 'lt' -Field.register_lookup(LessThan) - - +@Field.register_lookup class LessThanOrEqual(FieldGetDbPrepValueMixin, BuiltinLookup): lookup_name = 'lte' -Field.register_lookup(LessThanOrEqual) - - class IntegerFieldFloatRounding(object): """ Allow floats to work as query values for IntegerField. Without this, the @@ -295,20 +283,16 @@ class IntegerFieldFloatRounding(object): return super(IntegerFieldFloatRounding, self).get_prep_lookup() +@IntegerField.register_lookup class IntegerGreaterThanOrEqual(IntegerFieldFloatRounding, GreaterThanOrEqual): pass -IntegerField.register_lookup(IntegerGreaterThanOrEqual) - - +@IntegerField.register_lookup class IntegerLessThan(IntegerFieldFloatRounding, LessThan): pass -IntegerField.register_lookup(IntegerLessThan) - - class DecimalComparisonLookup(object): def as_sqlite(self, compiler, connection): lhs_sql, params = self.process_lhs(compiler, connection) @@ -343,6 +327,7 @@ class DecimalLessThanOrEqual(DecimalComparisonLookup, LessThanOrEqual): pass +@Field.register_lookup class In(FieldGetDbPrepValueIterableMixin, BuiltinLookup): lookup_name = 'in' @@ -403,9 +388,6 @@ class In(FieldGetDbPrepValueIterableMixin, BuiltinLookup): return ''.join(in_clause_elements), params -Field.register_lookup(In) - - class PatternLookup(BuiltinLookup): def get_rhs_op(self, connection, rhs): @@ -425,6 +407,7 @@ class PatternLookup(BuiltinLookup): return super(PatternLookup, self).get_rhs_op(connection, rhs) +@Field.register_lookup class Contains(PatternLookup): lookup_name = 'contains' prepare_rhs = False @@ -436,17 +419,13 @@ class Contains(PatternLookup): return rhs, params -Field.register_lookup(Contains) - - +@Field.register_lookup class IContains(Contains): lookup_name = 'icontains' prepare_rhs = False -Field.register_lookup(IContains) - - +@Field.register_lookup class StartsWith(PatternLookup): lookup_name = 'startswith' prepare_rhs = False @@ -458,9 +437,7 @@ class StartsWith(PatternLookup): return rhs, params -Field.register_lookup(StartsWith) - - +@Field.register_lookup class IStartsWith(PatternLookup): lookup_name = 'istartswith' prepare_rhs = False @@ -472,9 +449,7 @@ class IStartsWith(PatternLookup): return rhs, params -Field.register_lookup(IStartsWith) - - +@Field.register_lookup class EndsWith(PatternLookup): lookup_name = 'endswith' prepare_rhs = False @@ -486,9 +461,7 @@ class EndsWith(PatternLookup): return rhs, params -Field.register_lookup(EndsWith) - - +@Field.register_lookup class IEndsWith(PatternLookup): lookup_name = 'iendswith' prepare_rhs = False @@ -500,9 +473,7 @@ class IEndsWith(PatternLookup): return rhs, params -Field.register_lookup(IEndsWith) - - +@Field.register_lookup class Range(FieldGetDbPrepValueIterableMixin, BuiltinLookup): lookup_name = 'range' @@ -510,9 +481,7 @@ class Range(FieldGetDbPrepValueIterableMixin, BuiltinLookup): return "BETWEEN %s AND %s" % (rhs[0], rhs[1]) -Field.register_lookup(Range) - - +@Field.register_lookup class IsNull(BuiltinLookup): lookup_name = 'isnull' prepare_rhs = False @@ -525,9 +494,7 @@ class IsNull(BuiltinLookup): return "%s IS NOT NULL" % sql, params -Field.register_lookup(IsNull) - - +@Field.register_lookup class Search(BuiltinLookup): lookup_name = 'search' prepare_rhs = False @@ -543,9 +510,7 @@ class Search(BuiltinLookup): return sql_template, lhs_params + rhs_params -Field.register_lookup(Search) - - +@Field.register_lookup class Regex(BuiltinLookup): lookup_name = 'regex' prepare_rhs = False @@ -560,16 +525,11 @@ class Regex(BuiltinLookup): return sql_template % (lhs, rhs), lhs_params + rhs_params -Field.register_lookup(Regex) - - +@Field.register_lookup class IRegex(Regex): lookup_name = 'iregex' -Field.register_lookup(IRegex) - - class YearLookup(Lookup): def year_lookup_bounds(self, connection, year): output_field = self.lhs.lhs.output_field