Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django洗牌queryset_Python_Django_Django Queryset - Fatal编程技术网

Python 在Django洗牌queryset

Python 在Django洗牌queryset,python,django,django-queryset,Python,Django,Django Queryset,我只想在django洗牌queryset的一部分 qs = [obj1(order=0), obj2(order=1), obj3(order=999), obj4(order=999), .....] queryset按“order”字段排序,该字段可以是0-999之间的任何值 最终结果应该是所有不是999的对象都将从0开始排序 只有顺序为999的对象才会被洗牌 有可能吗?如果查询集不太大,无法作为列表进行排序,则可以执行以下操作: shuffled = sorted(qs, key=lam

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

qs = [obj1(order=0), obj2(order=1), obj3(order=999), obj4(order=999), .....]
queryset按“order”字段排序,该字段可以是0-999之间的任何值

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

只有顺序为999的对象才会被洗牌


有可能吗?

如果查询集不太大,无法作为列表进行排序,则可以执行以下操作:

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

你能澄清一下“洗牌”是什么意思吗?