diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-08-25 03:17:06 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-08-25 03:17:06 +0000 |
| commit | d535edb9da92f7de0c2ae35456b5b751db8e4d46 (patch) | |
| tree | 297f01400e74c28796b7e4f727a1e4c412377607 /django | |
| parent | 6d6fb392b4732fa4ff77e918c06ffcd92e753d9b (diff) | |
Fixed #8510 -- Allow both strings (mostly for the admin) and integers to be
used in "month" and "day" filters on date/datetime fields. Without this commit,
SQLite behaved inconsistently after [8494].
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8526 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/fields/__init__.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 0d7c4edd00..dc455dcc8c 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -568,6 +568,13 @@ class DateField(Field): else: return self.editable or self.auto_now or self.auto_now_add + def get_db_prep_lookup(self, lookup_type, value): + # For "__month" and "__day" lookups, convert the value to a string so + # the database backend always sees a consistent type. + if lookup_type in ('month', 'day'): + return [force_unicode(value)] + return super(DateField, self).get_db_prep_lookup(lookup_type, value) + def get_db_prep_value(self, value): # Casts dates into the format expected by the backend return connection.ops.value_to_db_date(self.to_python(value)) |
