Fixed #24263 -- Prevented extra queries on BaseDateDetailView with a custom queryset.

Thanks jekka-ua for the report and patch.
This commit is contained in:
Tim Graham 2015-02-03 08:46:17 -05:00
parent 9a391fbd61
commit 118b11221f
2 changed files with 5 additions and 1 deletions

View File

@ -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(_(

View File

@ -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)