📜  如何在 django orm 中随机排序 - Python (1)

📅  最后修改于: 2023-12-03 15:38:14.923000             🧑  作者: Mango

如何在 Django ORM 中随机排序 - Python

在 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 中实现随机排序的两种方法,希望对你有所帮助。