QuerySet API详解-defer和only:

defer :在一些表中,可能存在很多的字段,但是一些字段的数据量可能是比较庞大的,而此时你又不需要,比如我们在获取文章列表的时候,文章的内容我们是不需要的,因此这时候我们就可以使用 defer 来过滤掉一些字段。这个字段跟 values 有点类似,只不过 defer 返回的不是字典,而是模型。示例代码如下:

articles = list(Article.objects.defer("title"))
for sql in connection.queries:print('='*30)print(sql)

在看以上代码的 sql 语句,你就可以看到,查找文章的字段,除了 title ,其他字段都查找出来了。当然,你也可以使用 article.title 来获取这个文章的标题,但是会重新执行一个查询的语句。示例代码如下:

articles = list(Article.objects.defer("title"))
for article in articles:
# 因为在上面提取的时候过滤了title
# 这个地方重新获取title,将重新向数据库中进行一次查找操作print(article.title)
for sql in connection.queries:print('='*30)print(sql)

defer 虽然能过滤字段,但是有些字段是不能过滤的,比如 id ,即使你过滤了,也会提取出来。

only :跟 defer 类似,只不过 defer 是过滤掉指定的字段,而 only 是只提取指定的字段。

实例代码和截图:

    # books = Book.objects.defer("name", "price")books = Book.objects.only("name", "price")for item in books:print(item.id, item.name)

转载于:https://www.cnblogs.com/zheng-weimin/p/10284352.html

085:QuerySet API详解-defer和only相关推荐

  1. 093:QuerySet API详解-QuerySet转换为SQL的条件

    QuerySet API详解-QuerySet转换为SQL的条件: 生成一个 QuerySet 对象并不会马上转换为 SQL 语句去执行.比如我们获取 Book 表下所有的图书: books = Bo ...

  2. 092:QuerySet API详解-切片操作

    QuerySet API详解-切片操作: 切片操作:有时候我们查找数据,有可能只需要其中的一部分.那么这时候可以使用切片操作来帮我们完成. QuerySet 使用切片操作就跟列表使用切片操作是一样的. ...

  3. EXT核心API详解(二)-Array/Date/Function/Number/String

    EXT核心API详解(二)-Array/Date/Function/Number/String Array类 indexOf( Object o )  Number object是否在数组中,找不到返 ...

  4. 百度PaddleOCR及云平台OCR API详解及示例

    百度PaddleOCR及云平台OCR API详解及示例 目录 百度PaddleOCR及云平台OCR API详解及示例 使用百度开源的PaddleOCR 多个开源代码库比较

  5. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java 8引入 ...

  6. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization

    <<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...

  7. Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】

    目   录 推荐网址 抠图片上的某一角下来 8.2.2 Bitmap引起的OOM问题 8.3.1 三个绘图工具类详解 画线条 8.3.16 Canvas API详解(Part 1) 1.transla ...

  8. ServletFileUpload API详解

    ServletFileUpload1.ServletFileUpload upload=new ServletFileUpload(factory);创建一个上传工具,指定使用缓存区与临时文件存储位置 ...

  9. DiskFileItemFactory API详解

    核心API介绍1.DiskFileItemFactory作用:可以设置缓存大小以及临时文件保存位置. 默认缓存大小是 10240(10k).临时文件默认存储在系统的临时文件目录下.(可以在环境变量中查 ...

最新文章

  1. windows批处理使用记录
  2. 更改tomcat的request编码方式
  3. java服务端项目开发规范
  4. python在统计专业的应用_Python统计学一数据的概括性度量详解
  5. Vue项目中使用Echarts(一)
  6. - 动规讲解基础讲解八——正整数分组
  7. 20145234黄斐《java程序设计》第十三周代码检查
  8. gabor 幅值域 matlab,组合局部多通道Gabor滤波器和ICA的人脸描述与识别
  9. Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件
  10. PostgreSQL SQL 语言:查询
  11. 8uftp,8uftp使用教程图解
  12. NB-IoT独立式烟感在出租屋的防火安全应用
  13. DBeaver复制数据库报错@@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLO
  14. [模板] dp套dp bzoj5336: [TJOI2018]party
  15. 解system.img linux,MTK6577---解压system.img
  16. 海洋cms宝塔定时linux,海洋cms设置宝塔自动采集教程
  17. [1106]python bezier(贝塞尔)曲线
  18. 前端--使用webstorm创建一个vue项目
  19. vue 踩坑 Already included file name ‘xxx‘ differs from file name ‘xxx‘
  20. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示版本迭代持续更新

热门文章

  1. [转]XHTML+CSS兼容性解决方案小集
  2. keepalive配置mysql自动故障转移
  3. Windows系统下,使用Emacs+Putty操作远程机器
  4. 新概念英语第三册01-20课(转)
  5. java 的单态模式(只可以创建一个对象)
  6. 一起谈.NET技术,编写T4模板无法避免的两个话题:quot;Assembly Lockingquot;amp;quot;Debugquot;...
  7. 一起谈.NET技术,HubbleDotNet 和 Lucene.Net 匹配相关度的比较
  8. 黑客攻防技术宝典Web实战篇第2版—第11章 攻击应用程序逻辑
  9. 基于MM2的跨IDC kafka热备多活方案
  10. SpringCloud Consul注册中心介绍及配置使用