django查询进阶接口

1.defer接口 例子:posts = Post.objects.all().defer('content'),拿到的记录中不会包含content 部分, 但是当我们需要用到这个字段时, 在使用时会去加载. 把不需要展示的字段延迟加载.

当不想加载某个过大的字段时(如text类型的字段),会使用defer.

2.only接口 同defer接口刚好相反,如果只想获取所有的title记录,就可以使用only, 只获取titile的内容,其他值在获取时会产生额外的查询.

3.select_related接口.  这个接口用来解决一对多的关联关系. 例如 post = Post.objects.all().select_related('category')

4.prefetch_related接口. 针对多对多关系数据,可以通过这个接口避免N+1查询. 使用同上

 

posted @ 2019-05-27 22:19  C,python,linux,java  阅读(416)  评论(0)    收藏  举报