二.信号
1.已经内置好的信号
增加或修改时会有信号提示,走的都是save |
保证它先执行,可以放在__init__里,(app01有时可能没有)项目里有配置文件,放在__init__里他就要导入,就一定会被执行 |
2.自定义信号
三.ORM
fields 为字段 |
1.如何序列化queryset
方案一:使用serializers模块 方案二:通过values,外面虽然还是queryset,但是里面是字典,内部就可以被序列化了,queryset不能被序列化 |
可以对queryset做一个list转换为列表 |
2.时间格式无法被序列化
序列化时报错 |
cls默认参数 |
自定义json的cls |
3.性能相关(对数据库的查询操作)
方式一: 性能非常低,进行了8次数据库操作(进行了7次连表) |
方式二: 使用values一次取出需要的数据 |
方式三: 使用.select_related() |
方式四: 使用prefetch_related() |
- 补充:only和defer
only 写什么就用什么,如果多用就会增加数据查询,取出的还是对象,可以用 . 取 |
defer 除此字段以外都获取 |
四.分页