summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorJulien Phalip <jphalip@gmail.com>2012-09-15 16:33:56 -0700
committerJulien Phalip <jphalip@gmail.com>2012-09-15 16:33:56 -0700
commit336dfc3413b22bc5a5008bba7ff383886da96d60 (patch)
treed3ceafb72b3d2a67475bad055fc3790f388f6e88 /django
parent421ce44e8bb7386d1f5826d0473a3e24f6075d35 (diff)
[1.4.X] Fixed #18530 -- Fixed a small regression in the admin filters where wrongly formatted dates passed as url parameters caused an unhandled ValidationError. Thanks to david for the report.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/filters.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/django/contrib/admin/filters.py b/django/contrib/admin/filters.py
index 76b8d30c0d..549c15934b 100644
--- a/django/contrib/admin/filters.py
+++ b/django/contrib/admin/filters.py
@@ -8,13 +8,13 @@ certain test -- e.g. being a DateField or ForeignKey.
import datetime
from django.db import models
-from django.core.exceptions import ImproperlyConfigured
+from django.core.exceptions import ImproperlyConfigured, ValidationError
from django.utils.encoding import smart_unicode
from django.utils.translation import ugettext_lazy as _
from django.utils import timezone
-
from django.contrib.admin.util import (get_model_from_relation,
reverse_field_path, get_limit_choices_to_from_path, prepare_lookup_value)
+from django.contrib.admin.options import IncorrectLookupParameters
class ListFilter(object):
title = None # Human-readable title to appear in the right sidebar.
@@ -129,7 +129,10 @@ class FieldListFilter(ListFilter):
return True
def queryset(self, request, queryset):
- return queryset.filter(**self.used_parameters)
+ try:
+ return queryset.filter(**self.used_parameters)
+ except ValidationError as e:
+ raise IncorrectLookupParameters(e)
@classmethod
def register(cls, test, list_filter_class, take_priority=False):
@@ -302,7 +305,7 @@ class DateFieldListFilter(FieldListFilter):
else: # field is a models.DateField
today = now.date()
tomorrow = today + datetime.timedelta(days=1)
-
+
self.lookup_kwarg_since = '%s__gte' % field_path
self.lookup_kwarg_until = '%s__lt' % field_path
self.links = (