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

    ②.实际案例如下:

  • 相关阅读:
    python_django_sae入口配置
    Python_问题收录总结
    python_不用循环打印1-1000
    python_程序模拟浏览器请求及会话保持
    python_socket
    【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说
    【SIGGRAPH】最终幻想15的渲染技术
    【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
    罪恶装备 Xrd REVELATOR 3D进化出的非照片真实视觉
    《最终幻想XV》中角色AI的意识决策系统解析
  • 原文地址:https://www.cnblogs.com/xiamen-momo/p/14419950.html
Copyright © 2011-2022 走看看