1.多表连接查询:当我知道这点的时候顿时觉得django太NX了。
class A(models.Model):
name = models.CharField(u’名称’)
class B(models.Model):
aa = models.ForeignKey(A)
B.objects.filter(aa__name__contains=‘searchtitle’)

1.5 我叫它反向查询,后来插入记录1.5,当我知道的时候瞬间就觉得django太太太NX了。
class A(models.Model):
name = models.CharField(u’名称’)
class B(models.Model):
aa = models.ForeignKey(A,related_name=“FAN”)
bb = models.CharField(u’名称’)
查A: A.objects.filter(FAN__bb=‘XXXX’),都知道related_name的作用,A.FAN.all()是一组以A为外键的B实例,可前面这样的用法是查询出所有(B.aa=A且B.bb=XXXX)的A实例,然后还可以通过__各种关系查找,真赤激!!!

2.条件选取querySet的时候,filter表示=,exclude表示!=。
querySet.distinct() 去重复
__exact 精确等于 like ‘aaa’
__iexact 精确等于 忽略大小写 ilike ‘aaa’
__contains 包含 like ‘%aaa%’
__icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以…开头
__istartswith 以…开头 忽略大小写
__endswith 以…结尾
__iendswith 以…结尾,忽略大小写
__range 在…范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False

例子:

q1 = Entry.objects.filter(headline__startswith=“What”)
q2 = q1.exclude(pub_date__gte=datetime.date.today())
q3 = q1.filter(pub_date__gte=datetime.date.today())

q = q.filter(pub_date__lte=datetime.date.today())
q = q.exclude(body_text__icontains=“food”)

即q1.filter(pub_date__gte=datetime.date.today())表示为时间>=now,q1.exclude(pub_date__gte=datetime.date.today())表示为<=now

2013/12/12补充:
“在django models中取得一个字段的distinct值”。就是select distinct xxx from table_name …这样的功能。使用values会生成ValuesQuerySet(形如N个dict组成的list),猜测大数据无额外性能影响,毕竟queryset系列都是使用时才查询操作的。
xxxx.objects.values(“field_name”).distinct()
#或者
xxxx.objects.distinct().values(“field_name”)
这两句生成的sql语句相同,原帖地址:http://blog.csdn.net/tsbob/article/details/1340293。

关于缓存:
queryset是有缓存的,a = A.objects.all(),print [i for i in a].第一次执行打印会查询数据库,然后结果会被保存在queryset内置的cache中,再执行print的时候就会取自缓存。
很多时候会遇到仅需判断queryset是否为空的情况,可以1. if queryset:pass 2.if queryset.count>0:pass 3.if queryset.exists():pass. 三种方式性能依次提升。
当queryset非常巨大时,cache会成为问题。此时可以queryset.iterator(),迭代器的用处就不多说了,根据具体需求情况使用。

django models filter查询条件相关推荐

  1. django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct

    2019独角兽企业重金招聘Python工程师标准>>> 1.多表连接查询:当我知道这点的时候顿时觉得django太NX了.   class A(models.Model):      ...

  2. python django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct[转]...

    1.多表连接查询:当我知道这点的时候顿时觉得django太NX了.   class A(models.Model):     name = models.CharField(u'名称')   clas ...

  3. django filter查询多选_Django:使用filter的pk进行多值查询操作

    由于想要做收藏夹的功能,所以希望能够一次性查询出所有id的对象,查看文档,找到了如下方法 pk是primary key的缩写,顾名思义pk_in就是primary key在某一个范围内,具体操作(以自 ...

  4. 067:【Django数据库】ORM查询条件详解-range

    [Django数据库]ORM查询条件详解-range range: 判断某个 field 的值是否在给定的区间中.示例代码如下: # views.py文件内容:from datetime import ...

  5. django filter查询多选_动态filter查询数据Django实现方法

    这是我在学习Django时看到的关于动态filter查询数据Django实现方法.当时很受用,解决了我在工作中遇到的一个问题.可能有朋友会需要,转来玩蛇网python学习平台和大家一同分享下. 在平时 ...

  6. django之ORM查询操作(二)

    文章目录 查询集 基础条件查询--针对一个属性 F和Q对象 聚合函数 统计总的阅读量 关联查询 基础关联查询 内连接查询 自关联查询 查询集 查询集: 表示从数据库中获取的模型对象集合 在管理器上调用 ...

  7. Django的model查询操作 与 查询性能优化

    Django的model查询操作 与 查询性能优化 1 如何 在做ORM查询时 查看SQl的执行情况 (1) 最底层的 django.db.connection 在 django shell 中使用 ...

  8. Django聚合分组查询(F与Q查询|ORM查询优化|常见字段参数)

    文章目录 一.正反向查询进阶操作 二.聚合查询 三.分组查询 四.ORM再次添加字段 五.F与Q查询 五.ORM查询优化 六.事务操作 七.模型层常见字段 八.ORM常见字段参数 九.多对多三种创建方 ...

  9. Django之QuerySet 查询

    首先来看下如何查询.我们在网页中增加书名的查询链接 后端的查询处理代码:这里由于authors是manytomanyfiled,因此我们这里用r.authors.all().first()来查询符合条 ...

  10. Django数据库操作查询

    文章目录 Django数据库操纵查询 F和Q对象: 1.F对象: 2.Q对象: 2.聚合函数和排序函数 1.聚合函数: 2.排序函数: 3.级联查询: 1.关联查询 关联过滤查询 4.查询集 **查询 ...

最新文章

  1. linux入门之目录结构
  2. ng-options渲染的第一项为空的解决办法
  3. java for循环乘法表_JAVA-for循环案例(冒泡、九九乘法表、素数、菱形)
  4. Delphi自动提交网页表单和获取框架网页源码
  5. yii添加模型基础类
  6. Skywalking 结束孵化,成为 Apache 基金会顶级项目
  7. HD-SDI光端机有哪些优势?
  8. Java连载1-概述常用的dos命令
  9. 查询很慢会导致锁表吗_MySQL的insert into select 引发锁表
  10. Emacs基本操作说明
  11. JixiPix Rip Studio入门教程:如何修改图层和背景样式?
  12. 用C语言写一个查单词的小demo
  13. 【第四课】UAV倾斜摄影测量三维建模技术软件——Smart 3d
  14. 请立即卸载这款 IDEA 插件
  15. 芬兰建筑师帕特里克艾瑞克森先生一行访问云创
  16. 【论文笔记】DeiT论文阅读笔记
  17. java输入输出流数组_详解Java中ByteArray字节数组的输入输出流的用法
  18. 蓝天白云青山绿水还有清风吹斜阳......
  19. windows 查看wifi密码命令
  20. 二十多个免费高清图片素材网站送给你

热门文章

  1. 文件转换swf/flv
  2. ICCV2019论文题目中文列表
  3. 计算机附件常用工具,Windows附件常用工具
  4. python天涯帖子_Python爬虫实战(二):爬取天涯帖子(只看楼主)
  5. iPhone屏幕尺寸和分辨率
  6. 社会工程学主要学习内容及书籍推荐
  7. 网页抽奖程序(年会,开幕式等)
  8. 现场抽奖小程序_抽奖小程序助手转盘活动微信抽奖系统
  9. 虚拟仿真实验室 服务器,中国美术学院|虚拟仿真实验教学共享平台
  10. [源码和文档分享]基于VC++实现的中国象棋-双人象棋游戏