diff options
| author | Tim Graham <timograham@gmail.com> | 2015-02-03 08:46:17 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-02-03 09:12:37 -0500 |
| commit | 118b11221f7f632b4d0e6e976c87f563746ec211 (patch) | |
| tree | 40a34a474d293c35e12076c05a6d559021f8d653 | |
| parent | 9a391fbd6102176d576aa96ed3aeee9e9661b455 (diff) | |
Fixed #24263 -- Prevented extra queries on BaseDateDetailView with a custom queryset.
Thanks jekka-ua for the report and patch.
| -rw-r--r-- | django/views/generic/dates.py | 2 | ||||
| -rw-r--r-- | tests/generic_views/test_dates.py | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/django/views/generic/dates.py b/django/views/generic/dates.py index 8df5c338e2..27f0ba1065 100644 --- a/django/views/generic/dates.py +++ b/django/views/generic/dates.py @@ -648,7 +648,7 @@ class BaseDateDetailView(YearMixin, MonthMixin, DayMixin, DateMixin, BaseDetailV day, self.get_day_format()) # Use a custom queryset if provided - qs = queryset or self.get_queryset() + qs = self.get_queryset() if queryset is None else queryset if not self.get_allow_future() and date > datetime.date.today(): raise Http404(_( diff --git a/tests/generic_views/test_dates.py b/tests/generic_views/test_dates.py index cbd9bd90a0..d354d42149 100644 --- a/tests/generic_views/test_dates.py +++ b/tests/generic_views/test_dates.py @@ -638,6 +638,10 @@ class DateDetailViewTests(TestCase): '/dates/books/get_object_custom_queryset/2008/oct/01/1/') self.assertEqual(res.status_code, 404) + def test_get_object_custom_queryset_numqueries(self): + with self.assertNumQueries(1): + self.client.get('/dates/books/get_object_custom_queryset/2006/may/01/2/') + def test_datetime_date_detail(self): bs = BookSigning.objects.create(event_date=datetime.datetime(2008, 4, 2, 12, 0)) res = self.client.get('/dates/booksignings/2008/apr/2/%d/' % bs.pk) |
