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

时间:2014-03-11 07:41:00

标签: python django mongodb django-models django-filter

我的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>]

我的意思是,如何在过滤器查询中按给定列表的顺序得到结果.ie id = 1,id = 2,id = 3

我总是没有得到结果。这只是样本文件。

2 个答案:

答案 0 :(得分:0)

默认情况下,除非您声明order_by,否则不会对Queryset进行排序。见https://docs.djangoproject.com/en/dev/ref/models/querysets/#queryset-api

尝试Model.Objects.filter(id__in=[1,2,3]).order_by("id")

答案 1 :(得分:0)

据我所知,内置order_by只允许您按表中的列按升序或降序排序。如果您想自定义订单,则需要自己编写sorting函数。