39. Django 2.1.7 Admin - 列表页选项

39. Django 2.1.7 Admin - 列表页选项

 

页大小

每页中显示多少条数据,默认为每页显示100条数据,属性如下:

list_per_page=100

1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
list_per_page = 2# 设置每页显示两条数据

2)在浏览器中查看服务器信息的列表页面,效果如下图:

39. Django 2.1.7 Admin - 列表页选项

"操作选项"的位置

顶部显示的属性,设置为True在顶部显示,设置为False不在顶部显示,默认为True。

actions_on_top=True

底部显示的属性,设置为True在底部显示,设置为False不在底部显示,默认为False。

actions_on_bottom=False

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

列表中的列

属性如下:

list_display=[模型字段1,模型字段2,...]

1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
list_per_page = 2
list_display = ['id', 'server_hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

点击列头可以进行升序或降序排列。

将方法作为列

列可以是模型字段,还可以是模型方法,要求方法有返回值。

1)打开assetinfo/models.py文件,修改ServerInfo类如下:

class ServerInfo(models.Model):
server_hostname = models.CharField(max_length=20, default=None)
....

# 设置返回hostname
def hostname(self):
return self.server_hostname

2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

class ServerInfoAdmin(admin.ModelAdmin):
....
list_display = ['id', 'hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']

3)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

方法列是不能排序的,如果需要排序,则需要为方法指定排序依据。

admin_order_field=模型类字段

1)打开assetinfo/models.py文件,修改ServerInfo类如下:

class ServerInfo(models.Model):
....

# 设置返回hostname
def hostname(self):
return self.server_hostname
hostname.admin_order_field='server_hostname'

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

列标题

列标题默认为属性或方法的名称,可以通过属性设置。需要先将模型字段封装成方法,再对方法使用这个属性,模型字段不能直接使用这个属性。

short_description='列标题'

1)打开assetinfo/models.py文件,修改ServerInfo类如下:

class ServerInfo(models.Model):
...

# 设置返回hostname
def hostname(self):
return self.server_hostname
hostname.admin_order_field='server_hostname'
hostname.short_description='服务器名称'# 设置方法的列标题

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

关联对象字段

在模型表中如果还要关联的其他模型表的字段,那么可以通过在模型中封装方法来展示。

1)打开assetinfo/models.py文件,修改ServerInfo类如下:

class ServerInfo(models.Model):
....

# 设置返回hostname
def hostname(self):
return self.server_hostname
hostname.admin_order_field='server_hostname'
hostname.short_description='服务器名称'# 设置方法的列标题

# 查询一个中间件信息
def midware_name(self):
midware = MiddlewareInfo.middlewares_obj.get(id=1)
return midware.name
midware_name.short_description='中间件名称'

2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):
...
list_display = ['id', 'hostname','midware_name',....]

3)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

右侧栏过滤器

属性如下,只能接收字段,会将对应字段的值列出来,用于快速过滤。一般用于有重复值的字段。

list_filter=[]

1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

class ServerInfoAdmin(admin.ModelAdmin):
list_filter = ['server_intranet_ip']

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

搜索框

属性如下,用于对指定字段的值进行搜索,支持模糊查询。列表类型,表示在这些字段上进行搜索。

search_fields=[]

1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:

class ServerInfoAdmin(admin.ModelAdmin):
search_fields = ['server_hostname']
....

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

中文标题

在上面模型类通过方法可以设置中文的列标题,但是直接字段是用不同的方式来设置中文标题的。

1)打开assetinfo/models.py文件,修改模型类,为属性指定verbose_name参数,即第一个参数。

class ServerInfo(models.Model):
server_hostname = models.CharField(max_length=20, default=None, verbose_name='服务器名称')
server_intranet_ip = models.CharField(max_length=20, default=None, verbose_name='内网IP')
server_internet_ip = models.CharField(max_length=20, default=None, verbose_name='外网IP')
server_shelves_date = models.DateField(auto_now_add=True, verbose_name='服务设置时间') # 数据加入时间
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') # 数据更新时间
...

2)在浏览器中刷新效果如下图:

39. Django 2.1.7 Admin - 列表页选项

 

 

上一篇:01 DIV+CSS 固定页面布局


下一篇:02_vue模板语法