我有一个Django 2.0模型,其日期时间字段称为“创建”。我将admin中的date_hierarchy设置为该字段。当我显示管理页面时,日期层次结构将按预期方式显示-2019年4月,2019年5月,2019年6月。我在模型中有3个项目,每个项目的创建日期都在4月,5月和6月。
当我单击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年4月”,“ 2019年5月”和“ 2019年6月”链接。
我的期望是,单击“ 2019年4月”链接会将管理员显示限制为仅Fred模式中创建日期为4月的那些元素。但可惜的是,没有显示任何模型行,如下所示。当我单击“五月”或“六月”链接时,也会发生同样的情况-Fred模型中不会显示任何条目。
那么,date_hierarchy管理功能的预期操作是什么?我看到的行为似乎不是很有用。
注意:date_hierarchy的这种行为不是我上面最初描述的。但是,这种行为(在我的实际项目中)也不是很有用!顺便说一句,我使用的是相同的Python 3.7虚拟环境和相同的mysql数据库(对于Linux(x86_64),版本14.14 Distrib 5.7.26)是我的主要项目。将这个Fred模型和FredAdmin添加到我的项目中来说明我的问题,比在我的真实模型和管理页面中列出所有内容要容易得多。
谢谢!
标记