Fixed #1754, #2211, #2192 -- allow date filtering comparisons to use strings as

well as date objects. Fixed a couple of admin crashes as well.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@3223 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2006-06-28 11:37:17 +00:00
parent d6c95e93a7
commit 414bc24e81
2 changed files with 5 additions and 1 deletions

View File

@ -411,7 +411,7 @@ class DateField(Field):
def get_db_prep_lookup(self, lookup_type, value): def get_db_prep_lookup(self, lookup_type, value):
if lookup_type == 'range': if lookup_type == 'range':
value = [str(v) for v in value] value = [str(v) for v in value]
elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte', 'ne'): elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte', 'ne') and hasattr(value, 'strftime'):
value = value.strftime('%Y-%m-%d') value = value.strftime('%Y-%m-%d')
else: else:
value = str(value) value = str(value)

View File

@ -58,6 +58,10 @@ Article 4
>>> Article.objects.filter(headline__startswith='Blah blah').count() >>> Article.objects.filter(headline__startswith='Blah blah').count()
0L 0L
# Date and date/time lookups can also be done with strings.
>>> Article.objects.filter(pub_date__exact='2005-07-27 00:00:00').count()
3L
# in_bulk() takes a list of IDs and returns a dictionary mapping IDs # in_bulk() takes a list of IDs and returns a dictionary mapping IDs
# to objects. # to objects.
>>> Article.objects.in_bulk([1, 2]) >>> Article.objects.in_bulk([1, 2])