Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在django queryset中执行和配置?

如何在django queryset中执行和配置?
EN

Stack Overflow用户
提问于 2015-07-07 13:45:02
回答 1查看 1.3K关注 0票数 1

我想编写一个相当于这个SQL查询的Django查询:

代码语言:javascript
运行
AI代码解释
复制
SELECT * FROM user WHERE name LIKE '%danny%' AND name LIKE '%jack%' AND name LIKE '%peter%' ...

Django中,我有一个列表,例如:

代码语言:javascript
运行
AI代码解释
复制
lst=['danny','jack','peter']

如何构造Djagno queryset滤波器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-07 13:59:34

使用Q操作符:

代码语言:javascript
运行
AI代码解释
复制
queryargs = [Q(name__contains=i) for i in lst]
queryset = User.objects.filter(*queryargs)

更新

我已经回答了这个问题,但是给出了你关于如何获得组合的第二个扩展的问题。

代码语言:javascript
运行
AI代码解释
复制
SELECT * FROM user WHERE (name LIKE '%danny%' AND name LIKE '%jack%' AND name LIKE '%peter%') OR (family LIKE '%danny%' AND family LIKE '%jack%' AND family LIKE '%peter%')

这应该是可行的:

代码语言:javascript
运行
AI代码解释
复制
from django.db.models import Q

qname = Q()
for i in lst:
    qname &= Q(name__contains=i)

qfamily = Q()
for i in lst:
    qfamily &= Q(family__contains=i)

queryset = Data.objects.filter(qname | qfamily)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31279880

复制
相关文章
Django中的QuerySet
  查询集,类似一个列表,包含了满足查询条件的所有项。QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只有你查询的时候才真正的操作数据库。意味着QuerySet是惰性执行的----即创建查询集不会带来任何的数据库访问,直到查询集需要求值的时候,Django才会真正运行这个查询。
forxtz
2020/10/10
1.4K0
Django的Manager和QuerySet
要从数据库检索对象,需要通过模型类的 Manager 构建一个 QuerySet。换言之,models,manager和queryset是我们和数据库交互必须的三个东西。 models本身没有什么需要多说的,Django 使用了一套直观的系统:一个模型类代表一张数据表,一个模型类的实例代表数据库表中的一行记录。
zy010101
2021/10/20
1.1K0
django queryset 合并
1. 通过自带的方法: a1 = User.objects.filter(id__gt=8) a2 = User.objects.filter(id__lt=4) a3 = a1 | a2 注:这种方式合并的结构还是一个queryset,相当于a3把a1和a2的条件合并了,推荐,因为可以用order_by等函数了 只能合并同种model对象的数据 2. 用python的chain合并 from itertools import chain a1 = User.objects.filter(id__
kirin
2020/11/05
7940
Django(19)QuerySet API[通俗易懂]
我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,他本身是没有任何的属性和方法的。他的方法全部都是通过Python动态添加的方式,从QuerySet类中拷贝过来的。示例图如下:
全栈程序员站长
2022/09/16
7590
Django(19)QuerySet API[通俗易懂]
Django之QuerySet详解
在内部,创建、过滤、切片和传递一个QuerySet不会真实操作数据库,在你对查询集提交之前,不会发生任何实际的数据库操作。可以使用下列方法对QuerySet提交查询操作:
菲宇
2022/12/21
2.4K0
django RawQuerySet 与QuerySet
使用orm查询,得到的结果类型是QuerySet,这种类型drf可以进行下一步处理, 使用原生sql查询,例如
kirin
2020/11/23
1.6K0
django合并多个queryset
这几天正在做一个关于权限控制的django框架,今天上午遇见了一个bug,因为我的需求是,每个人拥有的权限不同,所以你所能够访问的菜单也不同,那么这时候不同的人员访问不同的菜单是不一样的。
kirin
2020/11/23
2.8K0
Django 2.1.7 查询集 QuerySet
上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。
Devops海洋的渔夫
2019/06/15
1.2K0
Django-models & QuerySet API
IntegerField  – 整型 BooleanField  – 布尔值类型 NullBooleanField  – 可以为空的布尔值 CharField     – 字符串类型 必须提供max_length参数,字符长度 TextField      – 文本类型 EmailField     – 一个带有检查 Email 合法性的 CharField GenericIPAddressField      IP地址 URLField        URL类型 SlugField  – 字符串类型,只包含字母,数字,下划线或连字符 CommaSeparatedIntegerField   – 字符串类型,格式必须为逗号分割的数字 UUIDField   uuid类型 DateTimeField     – 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] DateField   – 日期格式 YYYY-MM-DD TimeField   – 时间格式 HH:MM[:ss[.uuuuuu]] FloatField(Field)    – 浮点型 DecimalField(Field)   – 10进制小数 BinaryField(Field)    – 二进制类型
kirin
2020/07/23
1.4K0
Django学习笔记:QuerySet API
我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,他本身是没有任何的属性和方法的。他的方法全部都是通过Python动态添加的方式,从QuerySet类中拷贝过来的。
SingYi
2022/07/14
6450
Django学习笔记:QuerySet API
django:convert queryset into list of dicts
Use the.values()method, 返回结果仍为Queryset,再用list转换一下即可。
刀枪不入de王二花
2022/09/03
1.8K0
django:convert queryset into list of dicts
Django学习笔记之Queryset详解
    Django ORM用到三个类:Manager、QuerySet、Model。Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己的manager,增加表级方法;QuerySet:Manager类的一些方法会返回QuerySet实例,QuerySet是一个可遍历结构,包含一个或多个元素,每个元素都是一个Model 实例,它里面的方法也是表级方法,前面说了,Django给我们提供了增加表级方法的途径,那就是自定义manager类,而不是自定义QuerySet类,一般的我们没有自定义QuerySet类的必要;django.db.models模块中的Model类,我们定义表的model时,就是继承它,它的功能很强大,通过自定义model的instance可以获取外键实体等,它的方法都是记录级方法(都是实例方法,貌似无类方法),不要在里面定义类方法,比如计算记录的总数,查看所有记录,这些应该放在自定义的manager类中。以Django1.6为基础。
Jetpropelledsnake21
2018/08/01
2.8K0
Django官方文档小结(二) -- QuerySet
字段查找是指定SQL WHERE子句的内容的方式。它们被指定为QuerySet方法的关键字参数filter(), exclude()并且get()。
Autooooooo
2020/11/09
1.8K0
Django学习笔记之Django QuerySet的方法
一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get、filter、exclude、delete神马的感觉就已经无所不能了,但随着项目但业务逻辑越来越复杂,这几个方法可能就不能很好但满足我们了,所以这时候,最好的办法是神马??对,读文档!这里的读文档不是有业务需求时去查文档,而是要为了阅读文档而阅读文档。以下也是作为我的文档阅读笔记,我记下了一些我以后可能会用到或者一些技巧性提升的东西,好,不废话,正文开始: 首先,我们假设有以下两个model:
Jetpropelledsnake21
2018/07/05
6100
【Django】QuerySet以及Pickle 序列化在Django中的深度运用详解
QuerySet本身可以在不访问数据库的情况下构造、过滤、切片或复制和分配。只需要在需要从数据库检索数据或将数据保存到数据库时访问数据库。 可以通过以下方式执行QuerySet:迭代。
上进小菜猪
2022/12/13
1.8K0
Django Model 如何返回空的 QuerySet
>>> from django.contrib.auth.models import User >>> User.objects.none() <QuerySet []> 以上就是本文的全部内容,如果觉得还不错的话。
AlwaysBeta
2022/05/05
7810
18. Django 2.1.7 查询集 QuerySet
上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。
Devops海洋的渔夫
2022/01/17
7860
18. Django 2.1.7 查询集 QuerySet
Django配置Celery执行异步任务和定时任务
celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成:
37丫37
2018/08/23
2.3K0
Django配置Celery执行异步任务和定时任务
点击加载更多

相似问题

Django - QuerySet校验和

15

Django queryset和群

11

Django: QuerySet和ExpressionWrapper

10

如何在django中获取queryset?

10

如何在Django中添加QuerySet?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档