zoukankan      html  css  js  c++  java
  • Django——基于类的视图源码分析 三

    列表类通用视图(list.py)

    此文件包含用于显示数据列表常用的类和工具类。不仅可以方便的用于显示基于模型(Model)的数据列表,也可以用于显示自定义数据列表。

    list.py类图

    此图中绿色部分属于base.py,引入此图中是为了说明他们之间的关系

    MultipleObjectMixin

    最主要的核心工具类,主要的算法和接口全部都在这个工具类中实现。

    • 属性

    allow_empty 默认值True。表示没有数据时显示空列表;否则将会产生一个404错误。

    queryset 产生数据的queryset实例或"类queryset"数据列表。

    model 关联的模型类。

    paginated_by 分页的每页数据项数。默认不起用分页。

    context_object_name 保存到context中的对象名称。默认是$(model)_list。

    paginator_class 默认值Paginator。分页处理器。

    • 方法

    get_queryset 获取用于数据显示的列表对象。可以是类queryset对象。此方法优先选择使用queryset属性。未提供queryset属性时,返回model的默认管理器。如果也没有提供model属性,将会产生ImproperlyConfigured异常。

    paginate_queryset 根据需要,将queryset分页。返回(paginator, page, page.object_list, page.has_other_pages())

    get_paginate_by 返回每页数据项数。None表示不分页。

    get_paginator 返回分页器

    get_allow_empty 参见allow_empty属性说明

    get_context_object_name 参见context_object_name属性说明

    get_context_data 设置视图的附加属性。通常重写此方法来为视图提供附加数据
    默认设计的视图数据:

    'paginator': 分页器,
    'page_obj': 页对象,
    'is_paginated': 是否进行了分页,
    'object_list': 视图的数据

    BaseListView

    视图列表基类。继承自MutipleObjectMixin和View。这是一个抽象类。此函数通过增加get方法来整合View的处理流程和MutipleObjectMixin提供的工具函数。

    MultipleObjectTemplateResponseMixin

    继承自TemplateResponseMixin,并重写get_template_names方法。追加$(app_label)/$(model)_list.html作为默认模板。

    ListView

    本模块功能集大成者。一般都是直接继承此类,并重写MutipleObjectMixin的一些默认属性和/或方法来实现需求。

    此类继承自MultipleObjectTemplateResponseMixin和BaseListView。一般来说,只需提供model属 性,并编写$(model)_list.html即可实现数据列表功能。如需分页可以重写paginated_by属性,指定每页数据项数目。

  • 相关阅读:
    DevExpress_Winform_使用汇总
    SVN的可视化日志统计工具StatSVN
    jenkins搭建.Net项目自动构建
    关闭tab时,定位到导航栏对应的激活tab
    DevExpress.XtraNavBar.NavBarControl 模拟单击导航的选项事件
    选中Tab控件单击事件,点击tab头,定位到导航栏的选项,为选中状态 ,DevExpress.XtraNavBar.NavBarControl 导航控件定位或选中状态 另导航的选项为选中状态.
    WCF服务部署到IIS问题汇总
    iOS多线程编程
    最新版SDWebImage的使用
    前端入门系列之CSS
  • 原文地址:https://www.cnblogs.com/Simon-xm/p/4038290.html
Copyright © 2011-2022 走看看