diff options
| author | Julien Phalip <jphalip@gmail.com> | 2012-09-15 16:33:56 -0700 |
|---|---|---|
| committer | Julien Phalip <jphalip@gmail.com> | 2012-09-15 16:33:56 -0700 |
| commit | 336dfc3413b22bc5a5008bba7ff383886da96d60 (patch) | |
| tree | d3ceafb72b3d2a67475bad055fc3790f388f6e88 /django | |
| parent | 421ce44e8bb7386d1f5826d0473a3e24f6075d35 (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.py | 11 |
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 = ( |
