django model 条件过滤 queryset.filter(**condtions)用法详解


Posted in Python onMay 20, 2020

1、下述代码查询model对应数据库中日期等于2018-05-22的数据:

queryset = model.objects.all() 
condtions: {'date': '2018-05-22'}
query_res = queryset.filter(**condtions)

2、下述代码查询model对应数据库中日期小于2018-05-22的数据:

queryset = model.objects.all() 
condtions: {'date__lt': '2018-05-22'}
query_res = queryset.filter(**condtions)

3.总结:条件选取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

如果参数是字典,如

condtions: {'date__lt': '2018-05-22','status': '未支付','name__exact': 'yangxia'}
Entry.objects.filter(**condtions)相当于 Entry.objects.filter(date__lt= '2018-05-22',status='未支付',name__exact='yangxia')

翻译成sql语句是

select * from Entry.objects where date<='2018-05-22' and status='未支付' and name like 'yangxia'

filter例子:

>> q1 = Entry.objects.filter(headline__startswith="What")
>> q2= q1.filter(pub_date__gte=datetime.date.today())
>>> q3= q.filter(pub_date__lte=datetime.date.today())

exclude例子:

>>> q1 = q.exclude(body_text__icontains="food")

>> q2 = q1.exclude(pub_date__gte=datetime.date.today())

补充知识:如何使用django的objects.filter()方法匹配多个关键字

介绍:

今天在使用django的时候忽然想用到,如何匹配多个关键字的操作,我们知道django有一个objects.filter()方法,我们可以通过如下一句代码实现匹配数据库中title包含key关键词的文章名称。

table.objects.filter(title__contains=key)

问题:

但是我的需求是我不仅仅只需要匹配出一个关键字的文章而是多个关键字的文章,那么我们该如何使用django的objects.filter()?

table.objects.filter(title__contains=key1)+.objects.filter(title__contains=key2)+....?

解决:

我们都知道在正常的sql语句中如果我们需要匹配多个关键字的title可以这样做

select title from data where title regexp 'key1|key2'
select title from data where title like '%key1%' or like '%key2%'

以上的两种sql语句都是选择出title属性中存在key1和key2的所有文章,那么django是不是也会有一种方法匹配多个关键字呢?当然有就是下面的代码

from django.db.models import Q
table.object.filter(Q(title__startswith='key1') | Q(title__startswith='key2'))

首先导入django的Q方法然后在filter中添加对应的匹配即可

以上这篇django model 条件过滤 queryset.filter(**condtions)用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python Django的web开发实例(入门)
Jul 31 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python谱减法语音降噪实例
Dec 18 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
降低python版本的操作方法
Sep 11 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
如何在sublime编辑器中安装python
May 20 #Python
Django 解决distinct无法去除重复数据的问题
May 20 #Python
在主流系统之上安装Pygame的方法
May 20 #Python
python Django 反向访问器的外键冲突解决
May 20 #Python
Python如何实现爬取B站视频
May 20 #Python
django在开发中取消外键约束的实现
May 20 #Python
520使用Python实现“我爱你”表白
May 20 #Python
You might like
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
js面向对象的写法
2016/02/19 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
跟老齐学Python之编写类之二方法
2014/10/11 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python分支结构(switch)操作简介
2018/01/17 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
python实现祝福弹窗效果
2019/04/07 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
检察官就职演讲稿
2014/01/13 职场文书
学生实习介绍信
2014/01/15 职场文书
工作简历自我评价
2015/03/11 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书