如何随机化查询集的顺序

时间:2018-02-17 19:01:59

标签: python django django-queryset

考虑以下问题:

candidates = Candidate.objects.filter(ElectionID=ElectionIDx)

此查询中的对象按其id字段排序。

如何随机化查询中对象的顺序?可以使用.order_by()完成吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以将特殊参数?order_by一起使用来获取随机查询集:

Candidate.objects.filter(ElectionID=ElectionIDx).order_by('?')

Doc

请注意,根据数据库后端,随机化可能会很慢并且成本很高。我建议你先做基准测试。如果您觉得它很慢,那么请先尝试寻找替代方案,然后再使用?