本文主要是介绍39. Django 2.1.7 Admin - 列表页选项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考文献
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial07/
页大小
每页中显示多少条数据,默认为每页显示100条数据,属性如下:
list_per_page=100
1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):list_per_page = 2 # 设置每页显示两条数据
2)在浏览器中查看服务器信息的列表页面,效果如下图:

"操作选项"的位置
顶部显示的属性,设置为True在顶部显示,设置为False不在顶部显示,默认为True。
actions_on_top=True
底部显示的属性,设置为True在底部显示,设置为False不在底部显示,默认为False。
actions_on_bottom=False
2)在浏览器中刷新效果如下图:

列表中的列
属性如下:
list_display=[模型字段1,模型字段2,...]
1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):list_per_page = 2list_display = ['id', 'server_hostname', 'server_intranet_ip','server_internet_ip','server_shelves_date','update_time']
2)在浏览器中刷新效果如下图:

点击列头可以进行升序或降序排列。
将方法作为列
列可以是模型字段,还可以是模型方法,要求方法有返回值。
1)打开assetinfo/models.py文件,修改ServerInfo类如下:
class ServerInfo(models.Model):server_hostname = models.CharField(max_length=20, default=None)....# 设置返回hostnamedef 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)在浏览器中刷新效果如下图:

方法列是不能排序的,如果需要排序,则需要为方法指定排序依据。
admin_order_field=模型类字段
1)打开assetinfo/models.py文件,修改ServerInfo类如下:
class ServerInfo(models.Model):....# 设置返回hostnamedef hostname(self):return self.server_hostnamehostname.admin_order_field='server_hostname'
2)在浏览器中刷新效果如下图:

列标题
列标题默认为属性或方法的名称,可以通过属性设置。需要先将模型字段封装成方法,再对方法使用这个属性,模型字段不能直接使用这个属性。
short_description='列标题'
1)打开assetinfo/models.py文件,修改ServerInfo类如下:
class ServerInfo(models.Model):...# 设置返回hostnamedef hostname(self):return self.server_hostnamehostname.admin_order_field='server_hostname'hostname.short_description='服务器名称' # 设置方法的列标题
2)在浏览器中刷新效果如下图:

关联对象字段
在模型表中如果还要关联的其他模型表的字段,那么可以通过在模型中封装方法来展示。
1)打开assetinfo/models.py文件,修改ServerInfo类如下:
class ServerInfo(models.Model):....# 设置返回hostnamedef hostname(self):return self.server_hostnamehostname.admin_order_field='server_hostname'hostname.short_description='服务器名称' # 设置方法的列标题# 查询一个中间件信息def midware_name(self):midware = MiddlewareInfo.middlewares_obj.get(id=1)return midware.namemidware_name.short_description='中间件名称'
2)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
@admin.register(ServerInfo)
class ServerInfoAdmin(admin.ModelAdmin):...list_display = ['id', 'hostname','midware_name',....]
3)在浏览器中刷新效果如下图:

右侧栏过滤器
属性如下,只能接收字段,会将对应字段的值列出来,用于快速过滤。一般用于有重复值的字段。
list_filter=[]
1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
class ServerInfoAdmin(admin.ModelAdmin):list_filter = ['server_intranet_ip']
2)在浏览器中刷新效果如下图:

搜索框
属性如下,用于对指定字段的值进行搜索,支持模糊查询。列表类型,表示在这些字段上进行搜索。
search_fields=[]
1)打开assetinfo/admin.py文件,修改ServerInfoAdmin类如下:
class ServerInfoAdmin(admin.ModelAdmin):search_fields = ['server_hostname']....
2)在浏览器中刷新效果如下图:

中文标题
在上面模型类通过方法可以设置中文的列标题,但是直接字段是用不同的方式来设置中文标题的。
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 - 列表页选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!