1

我读过这个问题:在 Django 中,如何从数据库中选择 100 条随机记录?
并尝试使用Content.objects.all().order_by('?')[:30],但这会产生一些重复的项目。那么如何从数据库中选择 30 个唯一的随机值呢?

4

1 回答 1

2

如果您在数据库中有可管理数量的条目(即不是数千个),这将起作用,即使它两次命中数据库,它也可能比order_by('?').

import random
content_pks = Content.objects.values_list('pk', flat=True)
selected_pks = random.sample(content_pks, 30)
content_objects = Content.objects.filter(pk__in=selected_pks)
于 2011-05-03T15:26:08.440 回答