reverted changes from [1534] and [1536] regarding ticket #966

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1541 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Georg Bauer 2005-12-04 18:54:44 +00:00
parent e19edfbea0
commit c464e57da9
6 changed files with 42 additions and 72 deletions

View File

@ -132,12 +132,6 @@ OPERATOR_MAPPING = {
'endswith': 'LIKE %s', 'endswith': 'LIKE %s',
'istartswith': 'LIKE %s', 'istartswith': 'LIKE %s',
'iendswith': 'LIKE %s', 'iendswith': 'LIKE %s',
'notcontains': 'NOT LIKE %s',
'notstartswith': 'NOT LIKE %s',
'notendswith': 'NOT LIKE %s',
'inotcontains': 'NOT LIKE %s',
'inotstartswith': 'NOT LIKE %s',
'inotendswith': 'NOT LIKE %s',
} }
DATA_TYPES = { DATA_TYPES = {

View File

@ -146,12 +146,6 @@ OPERATOR_MAPPING = {
'endswith': 'LIKE BINARY %s', 'endswith': 'LIKE BINARY %s',
'istartswith': 'LIKE %s', 'istartswith': 'LIKE %s',
'iendswith': 'LIKE %s', 'iendswith': 'LIKE %s',
'notcontains': 'NOT LIKE BINARY %s',
'notstartswith': 'NOT LIKE BINARY %s',
'notendswith': 'NOT LIKE BINARY %s',
'inotcontains': 'NOT LIKE %s',
'inotstartswith': 'NOT LIKE %s',
'inotendswith': 'NOT LIKE %s',
} }
# This dictionary maps Field objects to their associated MySQL column # This dictionary maps Field objects to their associated MySQL column

View File

@ -151,12 +151,6 @@ OPERATOR_MAPPING = {
'endswith': 'LIKE %s', 'endswith': 'LIKE %s',
'istartswith': 'ILIKE %s', 'istartswith': 'ILIKE %s',
'iendswith': 'ILIKE %s', 'iendswith': 'ILIKE %s',
'notcontains': 'NOT LIKE %s',
'notstartswith': 'NOT LIKE %s',
'notendswith': 'NOT LIKE %s',
'inotcontains': 'NOT ILIKE %s',
'inotstartswith': 'NOT ILIKE %s',
'inotendswith': 'NOT ILIKE %s',
} }
# This dictionary maps Field objects to their associated PostgreSQL column # This dictionary maps Field objects to their associated PostgreSQL column

View File

@ -153,12 +153,6 @@ OPERATOR_MAPPING = {
'endswith': "LIKE %s ESCAPE '\\'", 'endswith': "LIKE %s ESCAPE '\\'",
'istartswith': "LIKE %s ESCAPE '\\'", 'istartswith': "LIKE %s ESCAPE '\\'",
'iendswith': "LIKE %s ESCAPE '\\'", 'iendswith': "LIKE %s ESCAPE '\\'",
'notcontains': "NOT LIKE %s ESCAPE '\\'",
'notstartswith': "NOT LIKE %s ESCAPE '\\'",
'notendswith': "NOT LIKE %s ESCAPE '\\'",
'inotcontains': "NOT LIKE %s ESCAPE '\\'",
'inotstartswith': "NOT LIKE %s ESCAPE '\\'",
'inotendswith': "NOT LIKE %s ESCAPE '\\'",
} }
# SQLite doesn't actually support most of these types, but it "does the right # SQLite doesn't actually support most of these types, but it "does the right

View File

@ -181,13 +181,13 @@ class Field(object):
return value return value
elif lookup_type == 'year': elif lookup_type == 'year':
return ['%s-01-01' % value, '%s-12-31' % value] return ['%s-01-01' % value, '%s-12-31' % value]
elif lookup_type in ('contains', 'icontains', 'notcontains', 'inotcontains'): elif lookup_type in ('contains', 'icontains'):
return ["%%%s%%" % prep_for_like_query(value)] return ["%%%s%%" % prep_for_like_query(value)]
elif lookup_type == 'iexact': elif lookup_type == 'iexact':
return [prep_for_like_query(value)] return [prep_for_like_query(value)]
elif lookup_type in ('startswith', 'istartswith', 'notstartswith', 'inotstartswith'): elif lookup_type in ('startswith', 'istartswith'):
return ["%s%%" % prep_for_like_query(value)] return ["%s%%" % prep_for_like_query(value)]
elif lookup_type in ('endswith', 'iendswith', 'notendswith', 'inotendswith'): elif lookup_type in ('endswith', 'iendswith'):
return ["%%%s" % prep_for_like_query(value)] return ["%%%s" % prep_for_like_query(value)]
elif lookup_type == 'isnull': elif lookup_type == 'isnull':
return [] return []

View File

@ -152,9 +152,9 @@ translates (roughly) into the following SQL::
The DB API supports the following lookup types: The DB API supports the following lookup types:
============= ============================================================== =========== ==============================================================
Type Description Type Description
============= ============================================================== =========== ==============================================================
exact Exact match: ``polls.get_object(id__exact=14)``. exact Exact match: ``polls.get_object(id__exact=14)``.
iexact Case-insensitive exact match: iexact Case-insensitive exact match:
``polls.get_list(slug__iexact="foo")`` matches a slug of ``polls.get_list(slug__iexact="foo")`` matches a slug of
@ -164,9 +164,7 @@ The DB API supports the following lookup types:
that contain "spam" in the question. (PostgreSQL and MySQL that contain "spam" in the question. (PostgreSQL and MySQL
only. SQLite doesn't support case-sensitive LIKE statements; only. SQLite doesn't support case-sensitive LIKE statements;
``contains`` will act like ``icontains`` for SQLite.) ``contains`` will act like ``icontains`` for SQLite.)
notcontains negated ``contains``
icontains Case-insensitive containment test. icontains Case-insensitive containment test.
inotcontains negated ``icontains``
gt Greater than: ``polls.get_list(id__gt=4)``. gt Greater than: ``polls.get_list(id__gt=4)``.
gte Greater than or equal to. gte Greater than or equal to.
lt Less than. lt Less than.
@ -179,13 +177,9 @@ The DB API supports the following lookup types:
and MySQL only. SQLite doesn't support case-sensitive LIKE and MySQL only. SQLite doesn't support case-sensitive LIKE
statements; ``startswith`` will act like ``istartswith`` for statements; ``startswith`` will act like ``istartswith`` for
SQLite.) SQLite.)
notstartswith negated ``startswith``
endswith Case-sensitive ends-with. (PostgreSQL and MySQL only.) endswith Case-sensitive ends-with. (PostgreSQL and MySQL only.)
notendswith negated ``endswith``
istartswith Case-insensitive starts-with. istartswith Case-insensitive starts-with.
inotstartswith negated ``istartswith``
iendswith Case-insensitive ends-with. iendswith Case-insensitive ends-with.
inotendswith negated ``iendswith``
range Range test: range Range test:
``polls.get_list(pub_date__range=(start_date, end_date))`` ``polls.get_list(pub_date__range=(start_date, end_date))``
returns all polls with a pub_date between ``start_date`` returns all polls with a pub_date between ``start_date``
@ -196,7 +190,7 @@ The DB API supports the following lookup types:
day For date/datetime fields, exact day match. day For date/datetime fields, exact day match.
isnull True/False; does is IF NULL/IF NOT NULL lookup: isnull True/False; does is IF NULL/IF NOT NULL lookup:
``polls.get_list(expire_date__isnull=True)``. ``polls.get_list(expire_date__isnull=True)``.
============= ============================================================== =========== ==============================================================
Multiple lookups are allowed, of course, and are translated as "AND"s:: Multiple lookups are allowed, of course, and are translated as "AND"s::