我希望在django中只调用queryset的一部分。
qs = [obj1(order=0), obj2(order=1), obj3(order=999), obj4(order=999), .....]
queryset按订单排序'字段,可以是0 - 999之间的任何内容。
最终结果应该是所有非999的对象将从0及以上订购,
,只有顺序为999的对象将被洗牌。
有可能吗?
答案 0 :(得分:2)
鉴于查询集不是太大而无法按列表排序,您可以执行以下操作:
shuffled = sorted(qs, key=lambda item: item.order if item.order != 999 else 999 + random.random())