列表页选项
页大小
指定每页中显示多少条数据,默认为每页显示100条数据
list_per_page = 100
class AreaAdmin(admin.ModelAdmin): # 页大小,指定每页显示10条数据 list_per_page = 10
浏览效果
操作选项Action
的位置
默认在管理页面的顶部有一个,管理页面底部没有
actions_on_top = True actions_on_bottom = False
class AreaAdmin(admin.ModelAdmin): # 在管理页面底部新加一个Action actions_on_bottom = True
浏览效果
列表中的列
指定在模型列表中显示哪些字段作为列
list_display=[字段1, 字段2, ...]
class AreaAdmin(admin.ModelAdmin): # 指定字段作为列 list_display = ['id', 'name', 'parent']
浏览效果
点击列头可以进行升序或降序排列
模型方法作为列
模型方法和模型字段都指定为列显示在管理界面上
模型方法作为列无法直接点击列头排序,如果需要排序需要为方法指定排序依据
# 定义AreaInfo模型方法作为列 def title(self): return self.name
list_display = ['id', 'name', 'parent', 'title']
浏览效果
方法作为列排序:指定方法作为列的排序依据
# 定义模型方法作为列 def title(self): return self.name # 指定方法作为列的排序依据 title.admin_order_field = 'name'
列标题
- 列标题默认为属性或方法的名称,可以通过属性设置为其他名称
列标题的设置方式
- 1.
short_description
属性设置 - 2.
verbose_name
属性设置
- 1.
short_description
属性设置需要先将模型字段封装成方法,再对方法使用这个属性,模型字段不能直接使用
short_description
属性方法名.short_description = '列标题'
# 定义模型方法作为列 def title(self): return self.name # 指定方法作为列的排序依据 title.admin_order_field = 'name' # 修改模型title方法作为列的标题名称 title.short_description = '区域名称'
verbose_name
属性设置定义模型字段时指定该属性的值
# 地区列表信息 class AreaInfo(models.Model): name = models.CharField(verbose_name='地区标题', max_length=30) #名称 parent = models.ForeignKey('self',null=True,blank=True) #关系 # 元类信息 :修改表名 class Meta: db_table = 'areainfo'
浏览效果
右侧栏过滤器
只能接收字段,会将对应字段的值列出来,用于快速过滤,一般用于有重复值的字段
list_filter = ['字段1', '字段2', ...]
class AreaAdmin(admin.ModelAdmin): # 右侧栏过滤器 list_filter = ['name']
浏览效果
搜索框
用于对指定字段的值进行搜索,支持模糊查询
search_fields = ['字段1', '字段2', ...]
class AreaAdmin(admin.ModelAdmin): # 搜索框 search_fields = ['name']
浏览效果