用Djang洗牌queryset

2024-04-25 01:33:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想在django洗牌queryset的一部分。在

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

queryset按“order”字段排序,该字段可以是0到999之间的任何值。在

最终结果应该是所有不是999的对象都将从0到更高排序

并且只有顺序为999的对象将被洗牌。在

有可能吗?在


Tags: 对象django排序顺序orderquerysetqsobj2
1条回答
网友
1楼 · 发布于 2024-04-25 01:33:47

如果查询集不是太大,不能作为列表排序,可以执行以下操作:

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

相关问题 更多 >