如何在Django中按查询列表的顺序获取过滤结果
我在我的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的顺序来排列结果。