У меня есть модель Django 2.0 с полем даты и времени, которое называется «создан». Я установил date_hierarchy в admin для этого поля. Когда я отображаю страницу администратора, иерархия дат отображается в соответствии с ожиданиями - апрель 2019, май 2019, июнь 2019. У меня есть три элемента в модели, каждый с созданной датой в апреле, мае и июне.
Когда я нажимаю на любую из дат в ссылке date_hierarchy, я ожидаю, что страница администратора изменится и покажет только один элемент, который имеет ту же дату создания, что и месяц, на который я нажал. Тем не менее, все три записи все еще отображаются. Правильно ли работает date_hierarchy или мои ожидания неверны?
Я создал тестовую модель и администратора для иллюстрации моего вопроса.
class Fred(Model):
name = models.CharField('name', max_length=200)
created = models.DateTimeField(auto_now_add=True, editable=False, verbose_name="date created")
updated = models.DateTimeField(auto_now=True, editable=False, verbose_name="last update")
class FredAdmin(admin.ModelAdmin):
date_hierarchy = 'created'
list_display = ('name', 'created', 'updated',)
Итак, страница администратора выглядит следующим образом
Три записи с тремя разными «созданными» датами. В data_hierarchy администратора отображаются ссылки «все даты», «апрель 2019», «май 2019» и «июнь 2019», соответствующие трем созданным датам.
Я ожидаю, что нажатие на ссылку «Апрель 2019» ограничит отображение администратором только тех элементов в модели Фреда с датами создания в апреле. Но, увы, ни одна из строк модели не отображается, как показано ниже. То же самое происходит, когда я нажимаю ссылки «Май» или «Июнь» - в модели Fred не отображаются записи.
Итак, какова ожидаемая операция административной функции date_hierarchy? Поведение, которое я наблюдаю, кажется не очень полезным.
Примечание: это поведение date_hierarchy не то, что я первоначально описал выше. Но это поведение (в моем реальном проекте) тоже было не очень полезным! Кстати, я использую ту же виртуальную среду Python 3.7 и ту же базу данных mysql (Ver 14.14 Distrib 5.7.26, для Linux (x86_64)) в качестве основного проекта. Просто было проще добавить эту модель Фреда и FredAdmin в мой проект, чтобы проиллюстрировать мой вопрос, чем перечислять все на моих реальных моделях и страницах администратора.
Спасибо!
Mark