自定义管理界面的变更列表现在 Poll 的管理界面看起来不错了,让我们给 “chang list” 页面做些调整 – 显示系统中所有 polls 的页面。 下面是现在的样子: 默认情况下, Django 显示的是每个对象 class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date')
效果再好的点话,让我们把在第一部分教程中自定义的方法 class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date', 'was_published_recently')
现在 poll 的变更列表页看起来像这样: 你可以点击列的标题对这些值进行排序 – 除了 你可以通过给该方法 (在 class Poll(models.Model):
# ...
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?'
再次编辑你的 admin.py 文件并添加一个改进 Poll 的 change list 页面效果的功能: 筛选 ( Filters ) 。在 list_filter = ['pub_date']
这就增加了一个 “筛选” 的侧边栏,让人们通过 显示筛选的类型取决于你需要筛选的字段类型。 因为 为了效果更好。让我们来加上搜索功能:: search_fields = ['question']
在 chang list 页的顶部增加了一个搜索框。当有人输入了搜索条件, Django 将搜索 最后,因为 date_hierarchy = 'pub_date'
这会在 change list 页的顶部增加了基于日期的分层导航功能。 在最顶层,显示所有可用年份。然后可钻取到月份,最终到天。 现在又是一个好时机,请注意 change lists 页面提供了分页功能。默认情况下每一页显示 100 条记录。 Change-list 分页,搜索框,筛选,日期分层和列标题排序如你所原地在一起运行了。 |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-12-5 02:57 , Processed in 0.035787 second(s), 17 queries .