按一个字段对来自不同类的列表进行排序-Django
创始人
2024-08-22 11:30:07
0

要对来自不同类的列表按照一个字段进行排序,我们可以使用Python的内置函数sorted() 以及Django的queryset API 。我们需要先将这些列表组合成一个列表,然后再按照指定字段排序。下面是代码示例:

假设我们有两个类,一个是Book类,一个是Magazine类,两者都有一个字段为pub_date,则我们可以使用以下代码片段进行排序:

from operator import attrgetter

books = Book.objects.all()
magazines = Magazine.objects.all()

#将两个queryset组合成一个list
items = list(books) + list(magazines)

#按照pub_date进行排序
sorted_items = sorted(items, key=attrgetter('pub_date'))

在上面的代码中,我们使用了Python中的attrgetter()函数来获取每个项的pub_date属性,并按照该属性进行排序。最后,我们可以通过sorted_items列表来访问已排序的项。

当然,如果您使用的是Django 2.0及更高版本的话,您也可以使用chain()函数将两个querysets组合成单个queryset,例如:

from itertools import chain

items = list(chain(books, magazines))

sorted_items = items.order_by('pub_date')

这种方法的优点是能够在数据库层面上对组合的查询集进行排序,从而提升性能。

相关内容

热门资讯

教程辅助挂!wepoker透视... 教程辅助挂!wepoker透视脚本下载,德普之星透视辅助插件,本来是真的有挂(证实有挂)1、很好的工...
科技新动态!广西友乐免费辅助,... 科技新动态!广西友乐免费辅助,龙江博乐填大坑辅助,详细脚本(有挂教学)1、龙江博乐填大坑辅助辅助器安...
据相关数据显示!sohoopo... 据相关数据显示!sohoopoker辅助,德普之星辅助工具如何设置,好像真的有挂(有挂技巧)1、操作...
推荐十款!潮友会透视辅助教程,... 推荐十款!潮友会透视辅助教程,大唐撸麻雀作弊码,详细app(有挂实锤)潮友会透视辅助教程辅助器是一种...
这一问题亟待解决!拱趴大菠萝万... 这一问题亟待解决!拱趴大菠萝万能辅助器,德扑之星有透视辅助吗,切实确实有挂(竟然有挂)该软件可以轻松...
玩家必看!家乡大贰辅助,土豪联... 玩家必看!家乡大贰辅助,土豪联盟辅助软件下载,详细器(竟然有挂)亲,关键说明,土豪联盟辅助软件下载透...
据了解!wpk是真的还是假的,... 据了解!wpk是真的还是假的,德普之星有辅助软件吗,都是是有挂(有挂分享)德普之星有辅助软件吗是不是...
揭秘关于!微乐贵阳麻将辅助,德... 您好,微乐贵阳麻将辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩...
反观!佛手大菠萝辅助,德普之星... 反观!佛手大菠萝辅助,德普之星透视辅助软件是真的吗,总是存在有挂(有挂详细)1、许多玩家不知道德普之...
一分钟了解!边锋干瞪眼ios辅... 一分钟了解!边锋干瞪眼ios辅助微信,微信开发辅助工具,详细技巧(有挂细节)1、边锋干瞪眼ios辅助...