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

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

在平时用Djangoa工作时,需要处理像是对多个字段进行查询找结果这样的任务太常见了。如果是既定的固定字段还行,要是遇到需要处理动态字段的时候,真是一个头两个大的感脚。需要有个好的思路,别人给一点点指定就豁然开朗的感觉很好。

动态filter查询数据Django实现方法代码如下:

比如有个类,像下边这样:

class Entry( models.Model ):

user = models.CharField(max_length=64)

category = models.CharField(max_length=64 )

title = models.CharField( max_length = 64 )

entry_text = models.TextField()

deleted_datetime = models.DateTimeField()

我们进行一个动态的查询,这里就需要用到 kwargs.

kwargs = {

# 动态查询的字段

}

# 选择deleted_datetime为空的记录

if exclude_deleted:

kwargs[ 'deleted_datetime__isnull' ] = True

# 选择特的category

if category is not None:

kwargs[ 'category' ] = category

# 特定的用户

if current_user_only:

kwargs[ 'user' ] = current_user

# 根据标题查询

if title_search_query != '':

kwargs[ 'title__icontains' ] = title_search_query

# 应用所有的查询

entries = Entry.objects.filter( **kwargs )

# 打印出所有的结果检查

print entries

#---------------www.iplaypy.com-----------------------------------

在这里要注意,如果用这种方式,在Q object方式下,是有问题的,要采用如下方式来处理。

kwargs = { 'deleted_datetime__isnull': True }

args = ( Q( title__icontains = 'Foo' ) | Q( title__icontains = 'Bar' ) )

entries = Entry.objects.filter( *args, **kwargs )

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/other/o2133.html

相关文章 Recommend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二本考北航计算机经历,我(来自二本学校)考上北航的一些经历

大家很想知道二本考上是怎麽考上北航的吧!我就把我的一点经历告诉大家吧。本人由于高考发挥的不好来到了一所很不入流的二本学校。所以我决定利用考研的机会进入理想大学。跟大家一样我也是从大三下学期开始准备考研的,由于本人英语还可以,所…

pytorch 命令行运行_PyTorch简介与相关安装

PyTorch简介PyTorch的前身是Torch,Torch是一个有大量机器学习算法支持的科学计算框架,灵活度很高,是一个与NumPy类似的张量(Tensor)操作库。但是Torch采用的是小众的编程语言Lua,因此流行度很低,于是就有了PyTorch的出…

软件测试用例分享ppt,分享:测试用例设计方法.ppt

分享:测试用例设计方法.ppt还剩122页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,很抱歉,此页已超出免费预览范围啦!如果喜欢就下载吧,价低环保!内容要点&#xff…

python 命名空间冲突_python-命名空间

通俗的来说,Python中所谓的命名空间可以理解为一个容器。在这个容器中可以装许多标识符。不同容器中的同名的标识符是不会相互冲突的。理解python的命名空间需要掌握三条规则:第一,赋值(包括显式赋值和隐式赋值)产生标识符,赋值的…

修改tomcat服务器图标,修改tomcat小猫图标,设置项目的favicon图标

JAVA设计模式之模板模式在阎宏博士的一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式 ...从scheduler is shutted down看程序员的英文水平我有个windows服务程序,今天重点在测试…

golang 安全的tcp server_Go 语言使用 TCP_NODELAY 控制发包流量

编写健壮且高性能的网络服务需要付出大量的努力。提高服务性能的方式有很多种,比如优化应用层的代码,更进一步,还可以看看垃圾回收器,操作系统,网络传输,以及部署我们服务的硬件是否有优化空间。TCP/IP 协议…

react取消所有请求_react 组件关闭后怎么消除还在进行中的ajax

把你的请求做成可以取消的, 这里的取消不是取消发送。 因为请求已经发送了,没有办法终止的。所谓的取消其实就是取消回调函数, react官方给出了一种最佳实践。const makeCancelable (promise) > { let hasCanceled_ false; const wrap…

css 涟漪,CSS3水波涟漪动画定位样式如何制作

CSS3水波涟漪动画定位样式如何制作宝剑锋从磨砺出,梅花香自苦寒来。以下是小编为大家搜索整理的CSS3水波涟漪动画定位样式如何制作,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!先上效果图:教程本动画需要用到的主要属性:animatio…

python基础实训_python基础实践(三)

-*-列表是新手可直接使用的最强大的python功能之一,它融合了众多重要的编程概念。-*-# -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_1 "什么是列表?"print(Question_1)smg "列表由一系列按特定顺序排列的元素组成。你可以创建…

python axis 0 1_python pandas 中axis值0 1怎么分行还是列

axis的重点在于方向,而不是行和列。1表示横轴,方向从左到右;0表示纵轴,方向从上到下。即axis1为横向,axis0为纵向,而不是行和列,具体到各种用法而言也是如此。当axis1时,如果是求平均…

ajax php接收不到数据库,PHP更新MySQL数据库与AJAX调用没有做任何事情

我已经测试过,发现正确的数据被发送,但PHP更新数据库中的字段即处理更新无法正常工作。发生的一切就是我在条件中得到了else响应。我需要根据用户输入是什么来更新数据库。就像我说的,我得到的回应是else回应。$youruname $_POST[youruname]…

就业技术书文件表格_公路工程全套资料—开工施工检验等表格范本,及监理内业常用资料...

关键词:开工报告、 路基、排水、小桥、涵洞、水泥、沥青、混凝土、施工检验、监理、资料整理、基层,内业资料,监理资料,施工试验报告等。公路工程在管理、监理、施工过程中需及时、准确、完整地收集整理项目建设中各种档案资料&am…

龙神契约为什么显示服务器错误,龙神契约连服BOSS玩法介绍

龙神契约游戏中连服战场的游戏中的一个非常重要的部分,而其中的boss尤为重要。击杀boss玩家可以获得非常多的奖励,一般一下稀有材料都是可以获得的,所以打boss是重中之重的。今天小编简单给大家介绍一下。有兴趣的小伙伴千万不要错过。和小编…

python批量新建文件_python批量处理

python opencv图像二值化批量处理from skimage import data_dir,io,transform,color,filtersimport numpy as npimport cv2def convert_gray(f):rgbio.imread(f) #依次读取rgb图片#grayfilters.gaussian(rgb, sigma1, outputNone, modenearest, cval0, multichannelNone, prese…

dns电脑服务器发生故障怎么修复,电脑dns服务器发生故障怎么解决

一、DNS简介:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机…

button设置disabled属性不生效_jQuery属性节点

发现了很好玩的表情可以插入嘻嘻嘻嘻嘻嘻嘻 1.attr属性操作 在jQuery中,可以通过attr()方法操作属性,可以是固有属性,也可以是自定义属性。1.1 设置属性值// 设置单个属性 $("div").attr("title", "我是一个div&quo…

server_u文件服务器已停止,Serv-U停止服务怎么解决

近期很多朋友在使用Serv-U来架设FTP服务器时候,总会出现自动停止服务的现象,一旦停止就不能保证工作的正常运作,那么Serv-U停止服务怎么解决,下面跟随爱站技术频道小编来看看吧!因为这个ftp服务很重要,要保…

如何知道电脑服务器操作系统,电脑如何查看服务器操作系统

电脑如何查看服务器操作系统 内容精选换一换北京时间1月3日,Intel处理器芯片被曝出存在严重的Meltdown和Spectre安全漏洞,漏洞详情如下:漏洞名称:Intel处理器存在严重芯片级漏洞漏洞编号:CVE-2017-5753、CVE-2017-5715…

哈哈机器人送到冰雪小镇_从小镇到上海:两代人的接力洄游 | 活动回顾

10月24日,在上海思南公馆,作家路明围绕着自己的新书《出小镇记》,和苏更生、景蛮蛮一起,向现场观众讲述了小镇和上海的故事。路明:我妈妈是69届的初中生,他们69届那些人走的时候,69届是一片红&a…

云服务器php版本修改,云服务器 更改php版本

云服务器 更改php版本 内容精选换一换本节操作介绍在管理控制台创建启动模板的操作步骤。每个账号在每个区域最多可创建30个启动模板。创建启动模板时,所有配置项均为可选。但如果缺失了创建实例的必要参数,例如规格、镜像类型,那么在使用该模…