当前位置: 首页 > 编程笔记 >

使用django的objects.filter()方法匹配多个关键字的方法

慕容雅珺
2023-03-14
本文向大家介绍使用django的objects.filter()方法匹配多个关键字的方法,包括了使用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的objects.filter()方法匹配多个关键字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 解决以下问题 的最有效方法 是什么?从交互式外壳程序: 目前,我正在解决以下问题: 但是看起来很笨拙… (python 2.7+或3.2+解决方案都可以) 问题答案: 使用关键字参数解包:

  • 问题内容: 我对indexOf方法有疑问。我想在字符串中找到多个“ X”的情况。 假设我的字符串是“ x是x是x是x”,我想在其所有索引位置中找到x。但是,如何在多种情况下执行此操作?使用indexOf甚至可能吗? 我做了int temp = str.indexOf(’x’); 它找到第一个x。我试图做一个for循环,在此循环中我被初始化为字符串的长度,但是由于我不断发现第一个x,所以这没有用。

  • 本文向大家介绍python通过BF算法实现关键词匹配的方法,包括了python通过BF算法实现关键词匹配的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python通过BF算法实现关键词匹配的方法。分享给大家供大家参考。具体实现方法如下:   算法思想:目标串t与模式串p逐词比较,若对应位匹配,则进行下一位比较;若不相同,p右移1位,从p的第1位重新开始比较。 算法特点:整体移动方向

  • 本文向大家介绍JavaScript中的this关键字使用方法总结,包括了JavaScript中的this关键字使用方法总结的使用技巧和注意事项,需要的朋友参考一下 在javascritp中,不一定只有对象方法的上下文中才有this, 全局函数调用和其他的几种不同的上下文中也有this指代。 它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。JavaScript 中函数的调用有以下

  • 修饰类方法的关键字 通过在func关键字之前使用static关键字来定义一个类型方法. 类同样可以使用class关键字来定义一个类型方法, 区别在于class修饰的方法, 允许子类重写 e.g. static static func talk() -> Void { print("\(self) talk method") } class class Pe

  • 我必须测试一些SLSB的方法,它在当前对象上调用另一个方法(使用这个关键字),我需要以某种方式将它存根。 请考虑以下简化代码: 为了存根getSomeDBValue()方法,我可以使用@mock和@injectMocks注释将mock注入到该类,但我不知道如何正确地存根anotherMethod()。要存根它,我需要在模拟对象上做这件事,所以我尝试将引用传递到当前对象作为参数,在测试中只传递模拟对