mirror of https://github.com/django/django.git
[3.1.x] Fixed #31590 -- Fixed ModelAdmin.date_hierarchy crash with an empty QuerySet.
Regression in55cdf6c52d
. Backport of099bce1bf0
from master
This commit is contained in:
parent
b46b0f80e8
commit
ef19aec2ca
|
@ -380,12 +380,12 @@ def date_hierarchy(cl):
|
|||
# select appropriate start level
|
||||
date_range = cl.queryset.aggregate(first=models.Min(field_name),
|
||||
last=models.Max(field_name))
|
||||
if dates_or_datetimes == 'datetimes':
|
||||
date_range = {
|
||||
k: timezone.localtime(v) if timezone.is_aware(v) else v
|
||||
for k, v in date_range.items()
|
||||
}
|
||||
if date_range['first'] and date_range['last']:
|
||||
if dates_or_datetimes == 'datetimes':
|
||||
date_range = {
|
||||
k: timezone.localtime(v) if timezone.is_aware(v) else v
|
||||
for k, v in date_range.items()
|
||||
}
|
||||
if date_range['first'].year == date_range['last'].year:
|
||||
year_lookup = date_range['first'].year
|
||||
if date_range['first'].month == date_range['last'].month:
|
||||
|
|
|
@ -969,6 +969,11 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
|
|||
self.assertEqual(response.context['site_url'], '/my-site-url/')
|
||||
self.assertContains(response, '<a href="/my-site-url/">View site</a>')
|
||||
|
||||
def test_date_hierarchy_empty_queryset(self):
|
||||
self.assertIs(Question.objects.exists(), False)
|
||||
response = self.client.get(reverse('admin:admin_views_answer2_changelist'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@override_settings(TIME_ZONE='America/Sao_Paulo', USE_TZ=True)
|
||||
def test_date_hierarchy_timezone_dst(self):
|
||||
# This datetime doesn't exist in this timezone due to DST.
|
||||
|
|
Loading…
Reference in New Issue