请稍候,加载中....

No. 19 后台列表界面

list_display

在默认的情况下,进入Question管理界面,只显示Question的文本信息,我们也可以来设置列表页面可以显示哪些信息,比如同时显示发布日期

class QuestionAdmin(admin.ModelAdmin):
    # ...
    list_display = ('question_text', 'pub_date', 'was_published_recently')

上面的代码通过list_display属性可以实现列表显示字段控制,可以看到除了字段,我们编写的was_published_recently也可以显示在这里

admin.display

默认下,was_published_recently只是简单的显示为True或者False

编辑polls/models.py中Question

通过@admin.display()来装饰was_published_recently

@admin.display(
        boolean=True,
        ordering='pub_date',
        description='Published recently?',
    )
def was_published_recently(self):
......

True与False显示为一个小图标,并且可以在这一列上按照日期进行排序

 

list_filter

修改admin.py文件

......
list_display = ('question_text', 'pub_date', 'was_published_recently')
list_filter = ['pub_date']

可以看到我们在list_display后面添加了list_filter属性

Django会自动根据字段类型,给出合适的过滤器

现在去后台看一下,发生了什么变化,右侧是不是多出了这样的一块:


Python学习手册-