【发布时间】:2021-03-27 16:48:31
【问题描述】:
我想要带有随机注释的项目。
我试过了:
items = Item.objects.all().annotate(random_value=Value(randint(1,6)),output_field=PositiveIntegerField()))
它是随机的,但对于 QuerySet 中的每个项目都是一样的。
但我希望每个项目都有不同的价值...
有什么想法吗?
【问题讨论】:
-
你在这里评估
randint,例如5,然后用5注释每个项目。 -
@WillemVanOnsem 是的,我知道。
-
从 Django-3.2 开始,
Random将可用:docs.djangoproject.com/en/dev/ref/models/database-functions/… -
@WillemVanOnsem Ou... 所以在 3.1 中这是不可能的?
-
不,但是手动定义
Random表达式等需要一些工作,特别是因为对于不同的SQL“方言”,这些是不同的表达式:github.com/django/django/blob/main/django/db/models/functions/…。