DjangoDjango·

Django use __icontains with __in for field lookup

发布时间:2024-06-28 00:39:14阅读量:190
专业文章
转载请注明来源

In Django, __icontains and __in are field lookups to the QuerySet methods. __icontains is a case-insensitive containment test, and __in means that the field is in a given iterable. So I would like to do the following lookup:

keywords = ['How', 'to', 'setup', 'PrismJS', 'and', 'Autoloader', 'plugin', 'with', 'Nuxt', '3?']
#Possible keywords of title
Writings.objects.filter(title__icontains__in=arr)

Unfortunately, we can not combine field lookups in Django.

To implement our desire, we can use Q() objects (see Complex lookups with Q objects), and combine them with | operator by looping.

from django.db.models import Q

def title_matching(merchants):
    """
    Return a queryset for writings whose titles contain case-insensitive
    matches for any of the `keywords`.
    """
    q = Q()
    for key in keywords:
        q |= Q(title__icontains = key)
    return Writings.objects.filter(q)

Similarly, we can use the same way to combine __iexact with __in.

评论区

暂无评论,来发布第一条评论吧!

弦圈热门内容

揭秘宇宙的奥秘:大爆炸、暗物质、暗能量以及神秘的平行宇宙存在吗?

有过一段时间,你或许觉得自己手中的咖啡杯,心中的梦想,身边的人和物,都是独特而独一无二的。然而,当你看向星空时,你是否曾经想过,也许在另一个角落,另一个宇宙中的你,正在面临同样的问题,活在一个完全不同而又相似的世界中?这就是平行宇宙理论中我们要讨论的问题。这个问题或许曾在我们心中悄然滋生,然而科学家们已经在努力寻找答案。这个故事要从一颗原初的原子开始讲述。梅特勒的宇宙大爆炸理论描绘了一个宇宙的诞生过程。数十亿年前,一个比太阳还要巨大的、密度极高的原子在一场大爆炸中破裂,荡涤出今天宇宙的蓝图,铸造了我们眼前的一切。然而,这个理论仍有许多未解之谜,如大爆炸之前的世界,以及大爆炸的原因。当哈勃发现宇宙中的星系在距离我们越远,颜色就越偏红,他发现了宇宙正在膨胀——这便是著名的哈勃红移现象。这种膨胀快速而不间断,使得一切都变得愈加模糊,无法分辨。但闪耀在暗淡淡度之外的,是还未被触摸的暗物质和暗能量。这两者虽无法直接观察,但却在无形中塑造了宇宙的形状和运动轨迹。如果说宇宙是一场最伟大的烟火,那么我们也许只能欣赏到其中一小段的辉煌。就像无限宇宙理论的倡导者们所说,我们所处的宇宙可能只是一个更大无边无 ...

cover

如果一个人身体死了但大脑活在营养液中,是不是活在虚拟世界里?

在现代科幻电影的奇异世界中,常常会出现这样的场景:一个人的身体已经死亡,但大脑却被保存在营养液中,继续在虚拟世界里体验着生命。《黑客帝国》中的就是这样一种构想,人类的大脑通过电信号与计算机系统连接,生活在一个被编程的虚幻世界中。然而,这种幻想并非纯粹的娱乐创作,它也反映了人们对大脑与身体关系的深层思考。哲学家希拉里·普特南提出的“缸中之脑”假想,把这种思考推向了极致。他设想了一个邪恶科学家通过手术将人的大脑取出,放置在营养液中维持生命,再通过计算机程序向大脑输入信息,制造出一个人工的虚拟现实。在这个假想中,被操作的大脑仍然可以体验到生活的一切,但所有的感知和记忆都可能是虚假的。这样的假想引发了一个问题:如果一个人的大脑被置于这样的环境中,那他或她是否真的活在虚拟世界里?揭秘大脑的复杂运作机制要探讨这个问题,我们需要从大脑的运作机制入手。每个人体内都存在着一个错综复杂的神经系统,这个系统由神经纤维构成,包括各种神经组织,如大脑和脊髓。这些神经组织负责将神经信号传递给身体的各个器官,同时也将各个器官的信号传递回大脑和脊髓。正是通过这样的信号传递,我们才能感受到外部世界的各种刺激,并做出相应 ...

cover

最新发现:火星上有大量液态水,多到可覆盖整个火星,且水深1.6公里

多年来的探测数据表明,在火星表面存在着大量类似地球河道和河床的地形结构,其长度往往可达数百公里,明显是由液态水长时间侵蚀和冲刷而形成的,而火星表面的很多盆地和低洼地区,其边缘还存在着类似海岸线的特征。除此之外,在火星表面,还发现了广泛分布的水合矿物以及类似于地球上由水过程形成的沉积岩,这些分层岩石通常显示出交错层理等特征,被认为有水流过时形成的痕迹。所以科学家据此认为,在遥远的过去,火星表面曾经也存在由大量液态水形成的江河湖海,而那时的火星很可能也像地球一样宜居。然而我们都知道,现在的火星表面是一片干涸的荒芜世界,那么,火星上的水到哪里去了呢?对此,一个常见的观点就是,由于火星太小,其核心早早地冷却了,这会导致其磁场的消失,在没有了磁场的保护之后,火星的大气就被太阳风持续剥离,这导致了火星表面的气压显著下降,使得液态水无法在表面存在,于是水开始蒸发并被太阳风不断地“吹”走,而火星大气的变薄还导致了火星表面的温度急剧下降,于是剩余的液态水都冻结起来,形成了火星两极的冰盖或隐藏在火星地下的冰土之中。(↑火星北极的冰盖)可以看到,这样的解释是比较合理的,该观点也因此得到了较多的认同,所以人们 ...

cover

有感而发,给小猫咪讲讲康德

前言:某日某夜,路遇小猫,小猫两步一回头,最后谨慎地坐在我脚边蹭我,我兴致忽起,遂边投喂边给小猫讲起来康德1 给猫讲康德在【牛顿猫】和【莱布尼茨猫】发展了微积分后,猫界对自然哲学的 研究就突飞猛进,而大众对猫的【认识论】依旧停滞不前,基础不牢,则地动山摇,科学认知的大厦有摇摇欲坠的风险。此时的认识论两派打架,分别是以【莱布尼茨猫】为代表的【纯粹理性派】,和以【休谟猫】为代表的【经验派】。那时候【亚里士多德猫】主义派把知识判断分为两类,【分析的】和 【综合的】。【分析】意思的可以从主体对象上直接得到的,比如这句话“一 只聪明的小猫 ”,“聪明 ”这一个特性可以直接从我们的主体,也就是这整 句话分析得到,我们就会说“小猫 ”的特性是“聪明 ”;而【综合】则代表其包括了其他的经验性的东西, 比方说“小猫 ”的特性是“吃小鱼干 ”, 我们从“一只聪明的小猫 ”这句话里,得不出“吃小鱼干 ”这个特性,“小猫 ”和“吃小鱼干 ”这作为认识到的经验我们曾见过,会很自然地联系起来。那么猫如何认识这个世界的呢?当然是靠芝士(知识)! 一只小猫天生就会喝奶,它不需要任何感观经验,这叫【先天知识】,一只小猫 ...

光速存在极限是因为处理器有局限?

长期以来,物理学家一直在努力解释,为什么宇宙一开始就具备条件适合生命进化?为什么物理定律和常数,恰好是允许恒星、行星以及生命最终能出现的非常具体的数值?而让宇宙膨胀的那种力,暗能量,就比理论认为的要弱得多。实际应该是让宇宙物质全都聚集在一起,而不是像观察到的在膨胀撕裂。一个常见的答案是我们生活在一个无限多的宇宙中,即多重宇宙,所以我们不应该对其中至少有一个宇宙 会变成我们这个宇宙感到惊讶。但另一个看上去天方夜谭的答案,却越来越被重视,那就是我们的宇宙是被一个外在的计算机模拟出来的,这个计算机有人(或许是一个先进的外星物种)在微调各种参数。这个看上去很离谱的理论,目前已经得到信息物理学这门科学分支的理论支持。信息物理学认为时空和物质并不是宇宙的本质。相反,我们所处的物理现实,本质上是由信息比特组成的,而我们感受到的时空体验就是从这些信息比特中产生的。而所谓的温度,只是原子聚集在一起运动的另一种说法。从根本上说,没有一个原子具有温度。这极大地让科学家相信,我们的整个宇宙,实际上只是计算机模拟出来的事实,存在巨大可能性。不过,这个想法并不是最近才提出的。早在1989 年,传奇物理学家约翰·阿 ...

li :before content: "✔ ";在一些移动设备上颜色不同

提问我写CSS来让li标签看起来更好。在桌面端和我的手机(联想vibe 1)以及华硕zenfone 5一切都没有问题但是当我在Iphone 5和Galaxy Note3上测试时,我的颜色(rgb(240, 230, 140))显示成红色和黑色。我不知道我的CSS有什么问题。我应该使用图片,而不是CSS?或者说CSS有解决办法吗?谢谢。这是我的CSS代码:ul.anamenu li::before { content: "✔ "; color: rgb(240, 230, 140); font-size: 4vmin; text-indent: -2em;}回答1试试在ul.anamenu li::before上添加font-family: 'Zapf Dingbats'。这可以用在iPhone上。编辑:2017年6月26日之所以会出现这个问题,是因为这个字符现在是苹果(和其他厂商)绘制的表情符号。在emojipedia这个网站里,你可以看到一些这个表情的变体。因此,你渲染的字符是你设备上的位图图像,并不是可以改变颜色的矢量字形。构造表情符号的厂商或平台可以自由的(用黑色、红色、粉色或其 ...

cover

共工怒触不周山并非传说,考古发现证据,专家:夏朝不是第一王朝

《列子·汤问》:“共工氏与颛顼争为帝,怒而触不周之山,折天柱,地维绝,天倾西北,故日月星辰移焉;得不满东南,故百川水潦归焉。共工是中国古代神话传说中的水神。因未能与颛顼争夺皇位,愤而推倒周围群山,导致天竺覆灭。但实际上,共工并不是一个个体,而是古代共工强大部落的人格化。据《左传》记载,共工家早在黄帝时代就是一个善于治水的部落。然而在尧舜时期,共工一家却突然成为天下诸侯的祸害,被舜帝列为天下“四害”。与三苗一起被华夏部落联盟驱逐,共工一家被迫从黄河迁徙到幽州。"“在幽州共事”也得到考古证实。尧舜生活在中国原始社会末期的一个龙山文化时代,分为中原龙山文化和山东龙山文化两种类型,分别代表居住在中原的炎黄部落(尧舜)的后裔和山东东夷人的后裔。中原龙山文化和山东龙山文化之间的豫北窄黄河地带还有一种特殊的文化类型:后港二期文化。后港二期也属于龙山文化体系,但有自己的特点。但在夏初龙山文化向二里头文化过渡的过程中,豫北后港二期文化突然消失,而辽西则突然出现了夏家店低级文化,与燕山南部同期考古类型完全不同,但与后港二期文化有传承关系。这说明在姚舜禹部落向夏朝过渡的过程中,居住在豫北的一个部落迁徙到辽西 ...