·

Django combine multiple QuerySets

发布时间:2024-05-03 00:33:49阅读量:247
专业文章
转载请注明来源

Suppose that we have two different models.

class Author(models.Model):
    name = models.CharField(max_length=50)

class Article(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author)

In certain circumstances, you might want to merge two querysets into one queryset. For example, you may want to combine Author.objects.all() and Article.objects.all(). You could accomplish this by pure python method itertools.chain, or using Django's inbuilt queryset method union . However, these are no more intuitive than combining two querysets directly.

We recommend to use the package django-querysetsequence. To combine Author.objects.all() and Article.objects.all(), you just need to call QuerySetSequence directly :

from queryset_sequence import QuerySetSequence

authors = Author.objects.all()
articles = Article.objects.all()
authors_articles = QuerySetSequence(authors, articles)

If you have multiple models A, B, C, D, E, F , and have an array data containing their querysets, e.g. A.objects.all(), B.objects.all() , etc. To combine querysets in an array, you could make use of python's inbuilt method reduce :

from functools import reduce
from queryset_sequence import QuerySetSequence

q = reduce(QuerySetSequence, data)


评论区

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

弦圈热门内容

cover

10.11-10.12 西班牙马德里之旅

【🇪🇸⛲️10.11-10.12 马德里】​终于上洛了,这次是正宗国庆节,不是野蛮加泰人的民族日了以前在rtve看了过很多遍,这次终于有机会亲临现场看阅兵了。遗憾的是刚好这天下暴雨👿跳伞环节,空军阅兵还有战机拉彩带等重头戏都取消了,自己也被淋成了落汤鸡,现场其他人也是“热情满满”😡,尤其是看到Pedro Sánchez时民众夹道欢迎对国家首相送上真诚问候的时候()趁着国庆​博物馆免费去普拉多看到了《宫娥》,《农神食子》,《1808年5月3日枪杀起义者》等一系列名作,都是来自课堂上的圣地巡礼。还有人称小云台花园的丽池公园,一眼江南西的格兰大道,有种仿佛又回到了广州的感觉()​

叔本华:论自杀与死亡,情爱与性爱|品读

论自杀与死亡,情爱与性爱文|叔本华就我所知,只有一神教或说犹太教的成员,才把自我毁灭的行为看作一种罪过。令人更为惊讶的是,无论是《新约》还是《旧约》中,对自我毁灭的行为都没有表述过任何禁止,或者明显的不同意。因此,宗教教师们只能把他们限制人们自杀的理论建立在他们自己杜撰的哲学基础之上。他们的理论非常贫乏,他们的论证因而就软弱无力,所以他们只有加重表达这种厌恶心境的用语的份量。也就是说,他们常常只得运用谩骂的手段。所以,我们总听到“自杀是最愚蠢的行为”,而且还听说“只有疯子才会这样干”诸如此类枯燥乏味的陈词滥调。或者作出这样胡言乱语的断定:自杀是“不正当的”;虽然在实际上,人在世界上最不可征服权利只有他自身的生命和人格。这一次,让我们请求道德情感来决定这个问题。我们可以比较一下两宗新闻对我们的印象。第一宗新闻是,我们的一个朋友犯了罪,诸如杀人、栽害、背弃、偷盗,第二宗新闻是他自愿地了结了他的生命。第一种情形,会激发出一种满腔热血的义愤、气恼以及急切的惩治、报仇的感受;而第二种情形将使人产生怜悯,忧伤,这种情形,人们与其说会对它作出道德谴责,毋宁说更可能对这个人的行为之勇气感到钦佩。谁没有 ...