示例:如前端需要通过下拉框选择需要通过什么过滤字段来查询输入的关键字,后端如何使用Q查询过滤包含输入的关键字呢?

def customers(request):
search_field = request.GET.get('search_field') #选择查询的字段
kw = request.GET.get('kw') # 搜索关键字
if kw:
# 根据传过来的关键字搜索过滤出总数据 用**打散的方式,因为search_field不是关键字
# 此时过滤的还不是包含关键字的,需要在前端下拉选项中设置value的值为qq__contains这种写法
# 方式一 使用**打散
customer_list = models.Customer.objects.filter(**{search_field:kw}) # 打散后形式 qq__contains=小明
# 方式二
q_obj = Q() # 生成Q对象
# q_obj.connector = 'or' # 指定Q查询的连接符,默认不写就是and
q_obj.children.append((search_field,kw)) # 传入元组形式的数据 and关系 Q(qq__contains='xx')&Q(name__contains='小明')
customer_list = models.Customer.objects.filter(q_obj) #直接将Q对象传入过滤条件中
.....
return render(request, 'customers.html')

Q查询的高级用法的更多相关文章

  1. django基础之day05,F与Q查询,Q查询的高级用法

    #F与Q查询 #*************************** F 查询 ******************** # F 查询数据库中的其他字段!!! #1.查询库存数大于卖出数的书籍 fr ...

  2. Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)

    上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...

  3. orm中的聚合函数,分组,F/Q查询,字段类,事务

    目录 一.聚合函数 1. 基础语法 2. Max Min Sum Avg Count用法 (1) Max()/Min() (2)Avg() (3)Count() (4)聚合函数联用 二.分组查询 1. ...

  4. SolrNet高级用法(分页、Facet查询、任意分组)

    前言 如果你在系统中用到了Solr的话,那么肯定会碰到从Solr中反推数据的需求,基于数据库数据生产索引后,那么Solr索引的数据相对准确,在电商需求中经常会碰到菜单.导航分类(比如电脑.PC的话会有 ...

  5. redis的Linux系统安装与配置、redis的api使用、高级用法之慢查询、pipline事物

    今日内容概要 redis 的linux安装和配置 redis 的api使用 高级用法之慢查询 pipline事务 内容详细 1.redis 的linux安装和配置 # redis 版本选择问题 -最新 ...

  6. Django之ORM表高级操作、增删改查、外键字段连表查、单表查、跨表查、F/Q查询

    目录 一.如何开启自己的测试脚本? 二.对表数据的添加.更新.删除 1.create() 变态操作之批量插入数据 2.update() 3.delete() 4.如何查看QuerySet对象执行的sq ...

  7. Fiddler 高级用法:Fiddler Script 与 HTTP 断点调试

    转载自 https://my.oschina.net/leejun2005/blog/399108 1.Fiddler Script 1.1 Fiddler Script简介 在web前端开发的过程中 ...

  8. django----聚合查询 分组 F与Q查询 字段 及其 参数

    目录 一.orm补充查询 聚合查询 1-1 分组查询 1-2 F与Q查询 1-3 二. 字段及其参数 常用字段 AutoField IntegerField CharField DateField D ...

  9. Django框架第七篇(模型层)--多表操作:一对多/多对多增删改,跨表查询(基于对象、基于双下划线跨表查询),聚合查询,分组查询,F查询与Q查询

    一.多表操作 一对多字段的增删改(book表和publish表是一对多关系,publish_id字段) 增  create publish_id 传数字   (publish_id是数据库显示的字段名 ...

  10. 模型层字段-多表查询-神奇的双下划线查询-F,Q查询

    Django ORM中常用的字段和参数 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. In ...

随机推荐

  1. 【转帖】BGP:全穿透,半穿透,静态代播有什么区别

    一. 什么是BGP二. 具体实现方案2.1BGP的优点2.2 真伪BGP在使用效果上有什么差异​​​​​​​​​​​​​​2.2.1 真BGP实现了用户最佳路径的自动选择​​​​​​​​​​​​​​​ ...

  2. 【转帖】linux 内核分析工具 Dtrace、SystemTap、火焰图、crash等

    << System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...

  3. [转帖]手把手教你在QEMU上运行RISC-V Linux

    https://kernel.0voice.com/forum.php?mod=viewthread&tid=3080   嵌入式Linux内核 发布于 2023-3-15 14:44:37  ...

  4. [转帖]kubelet 原理解析五: exec的背后

    https://segmentfault.com/a/1190000022163850 概述 线上排查pod 问题一般有两种方式,kubectl log或者kubectl exec调试.如果你的 lo ...

  5. Find 查找并且展示最近24小时内创建的文件信息

    1. 命令为: find /gscloud/tools/patchinstall/patchfiles/ -maxdepth 1 -mtime 1 |cut -c40- >/deploy/pat ...

  6. IPV6的简单学习与整理

    背景 大概2018年时曾经突击学习过一段时间IPV6 当时没太有写文档的习惯,导致这边没有成型的记录了. 今天又有项目要求使用IPV6, 想了想就将之前学习的部分 还有想继续学习提高的部分进行一下总结 ...

  7. 结论&定理大全

    定理 1:包含 \(0\) 与 \(2^k-1\) 的按位与或空间和 \(k\) 个点的有传递性的有向图形成双射 证明: 空间->传递闭包:对于任意两个位 \(i,j\),若某个数包含 \(i\ ...

  8. SpringAll

    目录 Spring Cloud 01-初识SpringCloud与微服务 02-SpringCloud-Feign声明式服务的调用 Spring Security 01-SpringSecurity- ...

  9. 5.7 Windows驱动开发:取进程模块函数地址

    在笔者上一篇文章<内核取应用层模块基地址>中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通 ...

  10. centos环境下MySQL8.0.25离线升级至8.0.32

    环境 centos7 mysql8.0.25 下载新版本mysql 下载地址:https://dev.mysql.com/downloads/mysql/ 升级 备份数据 先保存原始数据,进入mysq ...