📅  最后修改于: 2023-12-03 15:38:14.923000             🧑  作者: Mango
在 Django ORM 中,要实现随机排序,我们可以使用 Order By 和随机函数 Random。
代码示例:
from django.db.models.functions import Rand
from myapp.models import MyModel
MyModel.objects.all().order_by(Rand())
解释:
我们可以使用 django.db.models.functions.Rand()
函数,该函数会使用数据库的随机函数生成一个随机值,通过 order_by()
函数以该随机值进行排序,从而实现随机排序。
如果你的 Django 版本低于 3.2,你可以使用 Extra
函数和 SQL 中的 RAND()
函数来实现随机排序。
代码示例:
from django.db.models.expressions import RawSQL
from myapp.models import MyModel
MyModel.objects.all().extra(select={'random': 'RAND()'}).order_by('random')
解释:
使用 Extra
函数向查询中添加一个包含随机值的 select
语句,然后再使用 order_by()
函数以该随机值进行排序,从而实现随机排序。
以上就是在 Django ORM 中实现随机排序的两种方法,希望对你有所帮助。