如何在Django中按查询列表的顺序获取过滤结果

0 投票
2 回答
1677 浏览
提问于 2025-04-17 21:45

我在我的mongodb里有一些像这样的文档

{'id':1, 'url': www.aaa.com},{'id':3, 'url': www.ccc.com},{'id':2, 'url': www.bbb.com}

Model.Objects.filter(id__in=[1,2,3])

我想要上面这个Django查询的结果是

[Model:aaa.com>,Model:bbb.com>,Model:ccc.com>]

我想表达的就是,如何按照给定的列表顺序来获取过滤查询的结果,比如id=1, id=2, id=3。

我并没有总是得到按顺序排列的结果。这只是一些示例文档。

2 个回答

-1

据我所知,内置的 order_by 只能让你按照表格中的某一列进行升序或降序排列。如果你想要自定义排序的方式,就需要自己写一个 排序 函数。

-1

默认情况下,查询集(Queryset)是没有顺序的,除非你特别指定一个 order_by。你可以查看这个链接了解更多信息:https://docs.djangoproject.com/en/dev/ref/models/querysets/#queryset-api

你可以试试这个代码:Model.Objects.filter(id__in=[1,2,3]).order_by("id"),它会根据ID的顺序来排列结果。

撰写回答