django filter查询多选_django model filter查询
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查询相关推荐
- django filter查询多选_Django:使用filter的pk进行多值查询操作
由于想要做收藏夹的功能,所以希望能够一次性查询出所有id的对象,查看文档,找到了如下方法 pk是primary key的缩写,顾名思义pk_in就是primary key在某一个范围内,具体操作(以自 ...
- django filter查询多选_动态filter查询数据Django实现方法
这是我在学习Django时看到的关于动态filter查询数据Django实现方法.当时很受用,解决了我在工作中遇到的一个问题.可能有朋友会需要,转来玩蛇网python学习平台和大家一同分享下. 在平时 ...
- 【Python Django2.0入门教程】ORM之QuerySet 数据查询API:all get filter distinct first last count
在ORM增删改操作文章里,主要讲了ORM的增删改查的基本操作,这节我们主要是讲ORM查询操作,查询操作是Django的ORM框架中最重要的内容之一,下面是我们常用到的与查询相关的API. 注意,本章节 ...
- mysql查询filter_子查询包含or引起的filter性能问题案例
生产系统反应较慢,IO负载较高,查看故障时间的awr报表,发现主要都是类似下面sql引起的: Sql语句 ... 这个sql语句的主要问题在于最后的一个filter操作,一般我们在子查询中经常会看见h ...
- Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询
Lucene在6.0版本之后彻底废除了Filter的使用,采用BooleanQuery来实现Filter的功能,核心代码如下: TermQuery termQuery = new TermQuery( ...
- elasticsearch的查询器query与过滤器filter的区别
很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单- 当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...
- ElasticSearch(六)组合多查询(must, should, must_not, bool, filter)
组合多查询 现实的查询需求从来都没有那么简单:它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤.为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法. 你可以用 b ...
- django中的querydict对象_Django之MTV实战(2)
[toc] Hello, 各位,我回来了,大家别以为我消失了,我还是在的... 最近忙于家里重要事情,不能定期及时更新,请包含... 忙里挑一,我还是在后台默默的码了几篇文章,前提要保证下质量,才能发 ...
- 【django轻量级框架】View与Model交互(模块的交互关系)
文章目录 1 总体结构 2 各个模块的交互关系 3 Model 4 View 5 ORM语句 1 总体结构 Django是MTV结构,即:Model, Template, View Model:定义数 ...
最新文章
- 2021年大数据ELK(二十六):探索数据(Discovery)
- 安卓错误Emulator: error: x86 emulation currently......
- javascript html 生成 pdf
- ROS学习(六):CMakeLists.txt 文件
- mysql 支持 pdo_使php支持pdo_mysql_睿合科技
- 计算机对农业领域带来的变革,智慧农业将给农业带来哪些变化?
- python序列中是否包含某个元素
- 使用csscan评测字符集改变
- PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
- 新能源汽车入局不易 传第三张牌照花落前途汽车
- opencv视频拼接 opencv视频拼接优化
- 网络工程师还吃香吗?
- 2022 火狐插件 Tamper Data 下载安装使用教程
- Surface Book重装系统步骤
- VantUi 底部Tabbar跳转页面的方法以及产生的Bug问题
- 深度解析Linux通过日志反查入侵
- 时间序列分析之指数平滑法(holt-winters及代码)
- 软件版本发布要求和标准
- 论文检测前后需要做什么呢
- 计算机专业竞聘词150,计算机专业组长竞聘演讲稿.doc
热门文章
- linux和Windows之间互传文件
- P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
- Android自定义Toast
- UIScrollView无法滚动
- 46 - 算法 -Leetcode 168 -位运算 类型模拟倒序利用vector
- java 微商_Java 基础语法 - V8微商网_www.vip3158.com---时代创业网_www.sdcye.com - BlogJava...
- mysql 分区 扩充_mysql分区LVM扩容
- python数据分析与excel_读Python数据分析基础之Excel读写与处理
- stm32 python界面开发_【STM32开发】使用Qt Creator 开发STM32
- java 正方形_java-确定正方形和矩形之间的关系的算法