目录结构
2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码
2.2.第二步:查看表animal对应的列表展示页面默认的数据展示
2.3.第三步:对表animal对应的列表展示页面的数据展示进行相关优化
2.6.第六步:查看表animal对应的列表展示页面最新的数据展示
1.前言
对admin管理后台里的列表展示页面的数据展示进行相关优化的目的:更加方便我们对列表展示页面里的数据进行操作!
问题:那么,我们如何对admin管理后台里的列表展示页面的数据展示进行相关优化呢?
答案:我们对指定父类里的相关属性值进行重写,就能实现对admin管理后台里的列表展示页面的数据展示进行优化;
具体实现可以看接下来完整的操作流程;
细节:
①.操作流程的全程都是拿表animal当测试数据;
2.完整的操作步骤
2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码
细节:
①.ModelAdmin类是BaseModelAdmin类的子类;
②.假如一个父类A里有一个属性A1,类B是父类A的子类,类C是类B的子类,那么在类C里可以对属性A1的值进行重写;
class ModelAdmin(BaseModelAdmin): """Encapsulate all admin options and functionality for a given model.""" list_display = ('__str__',) # 显示在列表展示页面的表字段的集合;数据类型为元祖; list_display_links = () # 在列表展示页面里的可被点击且点击后能跳转到数据详情页的表字段的集合;数据类型为元祖; list_filter = () # 被过滤的表字段的集合;数据类型为元祖; list_select_related = False list_per_page = 100 # 在列表展示页面里,每个分页最多展示100条数据;数据类型为int; list_max_show_all = 200 list_editable = () # 在列表展示页面里,表字段值可以被编辑的表字段的集合;数据类型为元祖; search_fields = () # 在列表展示页面里,表字段值可以被当做搜索条件的表字段的集合;数据类型为元祖; date_hierarchy = None # 在列表展示页面里,任意一个值是时间类型的表字段可以被当做时间分层的筛选条件,一般比如用表字段create_time;数据类型为字符串; save_as = False save_as_continue = True save_on_top = False paginator = Paginator preserve_filters = True inlines = []
class BaseModelAdmin(metaclass=forms.MediaDefiningClass): """Functionality common to both ModelAdmin and InlineAdmin.""" autocomplete_fields = () raw_id_fields = () fields = None exclude = None fieldsets = None form = forms.ModelForm filter_vertical = () filter_horizontal = () radio_fields = {} prepopulated_fields = {} formfield_overrides = {} readonly_fields = () ordering = None # 在列表展示页面里,任意一至多个表字段的表字段值可以被当做排序条件,一般比如用表字段create_time;数据类型为元祖; # (如果【ordering = ("-create_time")】:表示数据按照创建时间倒序排序;如果【ordering = ("create_time")】:表示数据按照创建时间正序排序; ) sortable_by = None view_on_site = True show_full_result_count = True checks_class = BaseModelAdminChecks
2.2.第二步:查看表animal对应的列表展示页面默认的数据展示
2.3.第三步:对表animal对应的列表展示页面的数据展示进行相关优化
class ControlAnimal(admin.ModelAdmin): list_display = ("id","name","age","create_time") list_display_links = ("id","name",) list_filter = ("name","create_time") list_per_page = 11 list_editable = ("age",) # 注意:表字段id因为是主键且由于主键不允许被编辑,所以表字段id不能添加到 list_editable里面,否则会报错; search_fields = ("name","age") date_hierarchy = "create_time" ordering = ("-create_time",) admin.site.register(models.animal,ControlAnimal)
2.4.第四步:重启服务
2.5.第五步:退出登录并再次成功登陆admin管理后台
2.6.第六步:查看表animal对应的列表展示页面最新的数据展示
3.调试过程中相关报错信息的解决方案
①.解决方案:
根据报错日志(报错日志都是英文),复制报错日志里核心的报错文案进行如下处理:1.可以复制到百度进行查找对应答案,然后去改对应的错误代码块;2.或者可以按照报错文案进行自我理解,然后去改对应的错误代码块;
②.实际案例如下: