Django--CRM-客户列表展示, 分页

一 . 客户列表展示

  为了插入数据方便,我们可以用django里面的admin插入数据

  创建超级用户

  

  

  

  把语言改成中文

  

 

  结果:

  

  列表展示

展示不同字段的方式:   #  有需要的可以写 def__str__(self)
    1 .普通字段
        对象.字段名
    2 choice
        对象.字段名   # 得到是真的值
        对象.get_字段名_display()  #  中文显示值   前端不用写括号
    3 . 外键
        对象.外键    # 多对多  为了方便取值,要在类下定义方法
        对象.外键.name   # 一对一, 一对多

  choice展示方法

        

  在HTML文件中需要用get_字段_display

    

  要让不同状态呈现不同的颜色

  

 

  

  结果:

  

 

  多对多外键的列表展示

  

  

    

  

 

  全局格式化时间操作(如果你的字段里面写的是datetime下面就写DATETIME_FORMAT)

  

  models 补充

  

  __str__ 和 __repr__的用法


定义一个类,对象在调用的时候,先调用__str__方法,如果没有在调用__repr__方法,如果都没有,那么就找类继承的object中的__str__方法, 
  其实__str__方法最终调用的还是__repr__,
__repr__属于正规军,内置数据类型(list,tuple)直接找的是__repr__方法

 

 二 . 分页展示

  由于分页这个功能很多场景都能用的到,这里我们把它封装成一个类,这样我们需要的时候就可一直接调用了

 

# 首先我们先想一下流程

第一,我们要知道一共有多少条数据  # len(total_msg)
    
第二,每页要显示多少  # per_msg

第三,一共有多少页  
    # divmod的两个参数分别是被除数,除数,得到一个元组,分别是 // 的值和 % 的值
    total_page,more = divmod(len(total_msg),per_msg)  
判断如果more != 0,则total_page += 1

第四,前端要展示多少个分页  # show_page

第五,如果总页数小于要展示的分页怎么办?

第六,要对用户瞎输做出异常捕获

第七,要切片生成数据

 

  定义类utils文件夹/py文件/类

  

  

  

  

 

  

  

 

posted @ 2019-03-13 22:36  一个很善良的抱爱  阅读(232)  评论(0编辑  收藏  举报