我需要在一个查询集中返回一组随机组。例如,我目前返回了以下数据集:
ID Identity Name
1 E Foo
4 S Bar
2 E Ted
3 S Bob
5 S Jen
我需要对Identity列进行分组,以便'E'和'S'一起返回,但每次都以随机顺序返回。 IE:
查询1:
ID Identity Name
1 E Foo
2 E Ted
4 S Bar
3 S Bob
5 S Jen
如果我再次运行它:
查询2:
ID Identity Name
2 E Ted
1 E Foo
4 S Bar
5 S Jen
3 S Bob
我不确定使用Django ORM功能是否可行。请指教。提前谢谢,因为我对Django有点新鲜。另外,我知道我可以发送Raw查询并获得结果。如果可能的话,我想尽量避免这种情况。如果没有,我理解。提前谢谢。
答案 0 :(得分:0)
我相信你不能在查询集中这样做,但是你可以在python中使用随机模块并按照身份排序:
import random
objects = list(queryset)
random.shuffle(objects)
objects.sort(key=lambda x: x.Identity)
实际上,就像在中指定的一样
docs,您可以随意订购。
尝试这样的事情:
queryset.order_by('Identity', '?')