調整列表頁展示
1 頁大小
每頁中顯示多少條數據,默認為每頁顯示100條數據,屬性如下:
list_per_page=100
1)打開booktest/admin.py文件,修改AreaAdmin類如下:
class BookInfoAdmin(admin.ModelAdmin):list_per_page = 2
2)在瀏覽器中查看區域信息的列表頁面,效果如下圖:
2 "操作選項"的位置
頂部顯示的屬性,設置為True在頂部顯示,設置為False不在頂部顯示,默認為True。
actions_on_top=True
底部顯示的屬性,設置為True在底部顯示,設置為False不在底部顯示,默認為False。
actions_on_bottom=False
1)打開booktest/admin.py文件,修改BookInfoAdmin類如下:
class BookInfoAdmin(admin.ModelAdmin):...actions_on_top = True actions_on_bottom = True
2)在瀏覽器中刷新效果如下圖:
3 列表中的列
屬性如下:
list_display=[模型字段1,模型字段2,...]
1)打開booktest/admin.py文件,修改BookInfoAdmin類如下:
class BookInfoAdmin(admin.ModelAdmin):...list_display = ['id','btitle']
2)在瀏覽器中刷新效果如下圖:
點擊列頭可以進行升序或降序排列。
4 將方法作為列
列可以是模型字段,還可以是模型方法,要求方法有返回值。
通過設置short_description屬性,可以設置在admin站點中顯示的列名。
1)打開booktest/models.py文件,修改BookInfo類如下:
class BookInfo(models.Model):...def pub_date(self): return self.bpub_date.strftime('%Y年%m月%d日') pub_date.short_description = '發布日期' # 設置方法字段在admin中顯示的標題
2)打開booktest/admin.py文件,修改BookInfoAdmin類如下:
class BookInfoAdmin(admin.ModelAdmin):...list_display = ['id','btitle','pub_date']
3)在瀏覽器中刷新效果如下圖:
方法列是不能排序的,如果需要排序需要為方法指定排序依據。
admin_order_field=模型類字段
1)打開booktest/models.py文件,修改BookInfo類如下:
class BookInfo(models.Model):...def pub_date(self): return self.bpub_date.strftime('%Y年%m月%d日') pub_date.short_description = '發布日期' pub_date.admin_order_field = 'bpub_date'
2)在瀏覽器中刷新效果如下圖:
5 關聯對象
無法直接訪問關聯對象的屬性或方法,可以在模型類中封裝方法,訪問關聯對象的成員。
1)打開booktest/models.py文件,修改HeroInfo類如下:
class HeroInfo(models.Model):...def read(self): return self.hbook.bread read.short_description = '圖書閱讀量'
2)打開booktest/admin.py文件,修改HeroInfoAdmin類如下:
class HeroInfoAdmin(admin.ModelAdmin):...list_display = ['id', 'hname', 'hbook', 'read']
3)在瀏覽器中刷新效果如下圖:
6 右側欄過濾器
屬性如下,只能接收字段,會將對應字段的值列出來,用于快速過濾。一般用于有重復值的字段。
list_filter=[]
1)打開booktest/admin.py文件,修改HeroInfoAdmin類如下:
class HeroInfoAdmin(admin.ModelAdmin):...list_filter = ['hbook', 'hgender']
2)在瀏覽器中刷新效果如下圖:
7 搜索框
屬性如下,用于對指定字段的值進行搜索,支持模糊查詢。列表類型,表示在這些字段上進行搜索。
search_fields=[]
1)打開booktest/admin.py文件,修改HeroInfoAdmin類如下:
class HeroInfoAdmin(admin.ModelAdmin):...search_fields = ['hname']
2)在瀏覽器中刷新效果如下圖: