一 . 客户列表展示
为了插入数据方便,我们可以用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文件/类