1.多表连接查询:

class A(models.Model):

name = models.CharField(u'姓名')

class B(models.Model):

aa = models.ForeignKey(A)

B.objects.filter(aa__name__contains='searchtitle')

2.反向查询:

class A(models.Model):

name = models.CharField(u'姓名')

class B(models.Model):

aa = models.ForeignKey(A,related_name="NM")

bb = models.CharField(u'名称')

查A: A.objects.filter(NM__bb='XXXX'),都知道related_name的作用,A.NM.all()是一组以A为外键的 B实例,可前面这样的用法是查询出所有(B.aa=A且B.bb=XXXX)的A实例,然后还可以通过__各种关系查找。

3.条件选取querySet的时候,filter表示=,exclude表示!=。

querySet.distinct()去重复

__exact精确等于 like 'aa'

__iexact精确等于,忽略大小写 ilike 'aa'

__contains包含 like '%aa%'

__icontains包含,忽略大小写 ilike '%aa%',但是对于sqlite来说,contains的作用效果等同与icontains。

__gt大于

__dte大于等于

__lt小于

__lte小于等于

__in存在于一个list范围内

__startwith以...开头

__istartwith以...开头,忽略大小写

__endswith以...结尾

__iendswith以...结尾,忽略大小写

__range在...范围内

__year日期字段的年份

__month日期字段的月份

__day日期字段的日

__isnull=True/False

例子:

q1 = Entry.objects.filter(headline__startswith="My")

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

关于缓存:

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 filter查询多选_django model filter查询相关推荐

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

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

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

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

  3. 【Python Django2.0入门教程】ORM之QuerySet 数据查询API:all get filter distinct first last count

    在ORM增删改操作文章里,主要讲了ORM的增删改查的基本操作,这节我们主要是讲ORM查询操作,查询操作是Django的ORM框架中最重要的内容之一,下面是我们常用到的与查询相关的API. 注意,本章节 ...

  4. mysql查询filter_子查询包含or引起的filter性能问题案例

    生产系统反应较慢,IO负载较高,查看故障时间的awr报表,发现主要都是类似下面sql引起的: Sql语句 ... 这个sql语句的主要问题在于最后的一个filter操作,一般我们在子查询中经常会看见h ...

  5. Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询

    Lucene在6.0版本之后彻底废除了Filter的使用,采用BooleanQuery来实现Filter的功能,核心代码如下: TermQuery termQuery = new TermQuery( ...

  6. elasticsearch的查询器query与过滤器filter的区别

    很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单-  当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...

  7. ElasticSearch(六)组合多查询(must, should, must_not, bool, filter)

    组合多查询 现实的查询需求从来都没有那么简单:它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤.为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法. 你可以用 b ...

  8. django中的querydict对象_Django之MTV实战(2)

    [toc] Hello, 各位,我回来了,大家别以为我消失了,我还是在的... 最近忙于家里重要事情,不能定期及时更新,请包含... 忙里挑一,我还是在后台默默的码了几篇文章,前提要保证下质量,才能发 ...

  9. 【django轻量级框架】View与Model交互(模块的交互关系)

    文章目录 1 总体结构 2 各个模块的交互关系 3 Model 4 View 5 ORM语句 1 总体结构 Django是MTV结构,即:Model, Template, View Model:定义数 ...

最新文章

  1. 2021年大数据ELK(二十六):探索数据(Discovery)
  2. 安卓错误Emulator: error: x86 emulation currently......
  3. javascript html 生成 pdf
  4. ROS学习(六):CMakeLists.txt 文件
  5. mysql 支持 pdo_使php支持pdo_mysql_睿合科技
  6. 计算机对农业领域带来的变革,智慧农业将给农业带来哪些变化?
  7. python序列中是否包含某个元素
  8. 使用csscan评测字符集改变
  9. PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
  10. 新能源汽车入局不易 传第三张牌照花落前途汽车
  11. opencv视频拼接 opencv视频拼接优化
  12. 网络工程师还吃香吗?
  13. 2022 火狐插件 Tamper Data 下载安装使用教程
  14. Surface Book重装系统步骤
  15. VantUi 底部Tabbar跳转页面的方法以及产生的Bug问题
  16. 深度解析Linux通过日志反查入侵
  17. 时间序列分析之指数平滑法(holt-winters及代码)
  18. 软件版本发布要求和标准
  19. 论文检测前后需要做什么呢
  20. 计算机专业竞聘词150,计算机专业组长竞聘演讲稿.doc

热门文章

  1. linux和Windows之间互传文件
  2. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
  3. Android自定义Toast
  4. UIScrollView无法滚动
  5. 46 - 算法 -Leetcode 168 -位运算 类型模拟倒序利用vector
  6. java 微商_Java 基础语法 - V8微商网_www.vip3158.com---时代创业网_www.sdcye.com - BlogJava...
  7. mysql 分区 扩充_mysql分区LVM扩容
  8. python数据分析与excel_读Python数据分析基础之Excel读写与处理
  9. stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32
  10. java 正方形_java-确定正方形和矩形之间的关系的算法