• django学习-27.admin管理后台里:对列表展示页面的数据展示进行相关优化


    目录结构

    1.前言

    2.完整的操作步骤

    2.1.第一步:查看ModelAdmin类和BaseModelAdmin类的源码

    2.2.第二步:查看表animal对应的列表展示页面默认的数据展示

    2.3.第三步:对表animal对应的列表展示页面的数据展示进行相关优化

    2.4.第四步:重启服务

    2.5.第五步:退出登录并再次成功登陆admin管理后台

    2.6.第六步:查看表animal对应的列表展示页面最新的数据展示

    3.调试过程中相关报错信息的解决方案

    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.或者可以按照报错文案进行自我理解,然后去改对应的错误代码块;

    ②.实际案例如下:

  • 相关阅读:
    POJ 2987:Firing(最大权闭合图)
    BZOJ 1001:[BeiJing2006]狼抓兔子(最小割)
    HDU 1007:Quoit Design(分治求最近点对)
    POJ 1986:Distance Queries(倍增求LCA)
    HDU 3879 && BZOJ 1497:Base Station && 最大获利 (最大权闭合图)
    BZOJ-1011 遥远的行星
    BZOJ-1044 木棍分割
    BZOJ-1042 硬币购物
    BZOJ-1050 旅行
    BZOJ-1037 生日聚会
  • 原文地址:https://www.cnblogs.com/xiamen-momo/p/14419950.html
Copyright © 2020-2023  润新知