Django中的随机查询集

时间:2015-06-09 15:06:39

标签: python django django-queryset

我希望在django中只调用queryset的一部分。

qs = [obj1(order=0), obj2(order=1), obj3(order=999), obj4(order=999), .....]

queryset按订单排序'字段,可以是0 - 999之间的任何内容。

最终结果应该是所有非999的对象将从0及以上订购,

,只有顺序为999的对象将被洗牌。

有可能吗?

1 个答案:

答案 0 :(得分:2)

鉴于查询集不是太大而无法按列表排序,您可以执行以下操作:

shuffled = sorted(qs, key=lambda item: item.order if item.order != 999 else 999 + random.random())