我试图通过模型字段值是否在列表中来订购Django QuerySet。
我知道您可以对此属性进行过滤,如下所示:
my_qs = MyModel.objects.filter(id__in=[1,3,5,11])
只会给我带有ids 1,3,5和11的MyModel对象。
我想订购这家酒店。使用上面的例子,我希望首先在列表中包含带有id的MyModel对象,但是仍然拥有所有其他MyModel对象,就在它们之后。
感谢您的帮助!
答案 0 :(得分: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))