summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAnton Samarchyan <anton.samarchyan@savoirfairelinux.com>2017-02-24 10:22:25 -0500
committerTim Graham <timograham@gmail.com>2017-03-06 12:01:31 -0500
commite88d2dfcf4daa2b4ee451f518085413bb3b8deeb (patch)
treeb3b77ca9cd8262c674aa64b6a1d2c4ea6330b48b /django
parent8346680e1ca4a8ddc8190baf3f5f944f6418d5cf (diff)
Fixed #27475 -- Fixed NonExistentTimeError crash in ModelAdmin.date_hierarchy.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/templatetags/admin_list.py11
1 files changed, 4 insertions, 7 deletions
diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py
index 613db7d90d..6901c4cec9 100644
--- a/django/contrib/admin/templatetags/admin_list.py
+++ b/django/contrib/admin/templatetags/admin_list.py
@@ -2,8 +2,7 @@ import datetime
from django.contrib.admin.templatetags.admin_urls import add_preserved_filters
from django.contrib.admin.utils import (
- display_for_field, display_for_value, get_fields_from_path,
- label_for_field, lookup_field,
+ display_for_field, display_for_value, label_for_field, lookup_field,
)
from django.contrib.admin.views.main import (
ALL_VAR, ORDER_VAR, PAGE_VAR, SEARCH_VAR,
@@ -335,8 +334,6 @@ def date_hierarchy(cl):
"""
if cl.date_hierarchy:
field_name = cl.date_hierarchy
- field = get_fields_from_path(cl.model, field_name)[-1]
- dates_or_datetimes = 'datetimes' if isinstance(field, models.DateTimeField) else 'dates'
year_field = '%s__year' % field_name
month_field = '%s__month' % field_name
day_field = '%s__day' % field_name
@@ -370,7 +367,7 @@ def date_hierarchy(cl):
}
elif year_lookup and month_lookup:
days = cl.queryset.filter(**{year_field: year_lookup, month_field: month_lookup})
- days = getattr(days, dates_or_datetimes)(field_name, 'day')
+ days = getattr(days, 'dates')(field_name, 'day')
return {
'show': True,
'back': {
@@ -384,7 +381,7 @@ def date_hierarchy(cl):
}
elif year_lookup:
months = cl.queryset.filter(**{year_field: year_lookup})
- months = getattr(months, dates_or_datetimes)(field_name, 'month')
+ months = getattr(months, 'dates')(field_name, 'month')
return {
'show': True,
'back': {
@@ -397,7 +394,7 @@ def date_hierarchy(cl):
} for month in months]
}
else:
- years = getattr(cl.queryset, dates_or_datetimes)(field_name, 'year')
+ years = getattr(cl.queryset, 'dates')(field_name, 'year')
return {
'show': True,
'choices': [{