python - 如何随机化查询集的顺序

标签 python django django-queryset

考虑以下查询:

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

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

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

最佳答案

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

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

Doc

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

关于python - 如何随机化查询集的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48844877/

相关文章:

python - 是否可以在构建后修改 Django Q() 对象?

python - 健全性检查 : date driven event handler with django

Django : Count only non-empty CharField with annotate() & values()

python - 使用 Python 的 HTTPBasicAuthHandler 进行 Bitbucket API 身份验证

python - Heroku 上的 Django 翻译无法完全正常工作

python - django aws s3图像在上传时调整大小并访问各种调整大小的图像

django - 计算 Django 查询集中相同的字段值

django - manytomany 上的查询过滤器为空

python - Mechanize 在所需的网站中找不到任何表格

python - 每当我的 MySQL 数据库发生变化(插入)时,是否可以向我的 python 应用程序发送实时通知?