1

我试图通过模型字段值是否在列表中来订购 Django QuerySet。

我知道您可以过滤此属性,如下所示:

my_qs = MyModel.objects.filter(id__in=[1,3,5,11])

只会给我 ID 为 1、3、5 和 11 的 MyModel 对象。

我想在这家酒店订购。使用上面的示例,我希望首先在列表中拥有带有 id 的 MyModel 对象,但仍然有所有其他 MyModel 对象,就在它们之后。

谢谢你的帮助!

4

1 回答 1

2
my_qs = MyModel.objects.filter(id__in=[1,3,5,11])
not_my_qs = MyModel.objects.exclude(id__in=[1,3,5,11])

from itertools import chain
result_list = list(chain(my_qs, not_my_qs))
于 2012-09-07T17:12:28.393 回答