我完全迷失在这里,因为这适用于普通列表但不适用于djnago查询集。
我想返回一个列表,其中包含从django查询中随机选择的3个对象。
我试过了:
def get_small_list():
indexes = range(7)
random.shuffle(indexes)
query_objects = Posts.objects.filter(...)[:7]
small_list = []
for i in range(3):
index = indexes.pop()
post = query_objects[index]
small_list.append(post)
return small_list
......它不起作用。有时,small_list有重复的值。我不知道为什么。 任何帮助将不胜感激。
答案 0 :(得分:1)
官方文件说:https://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by-fields
要随机订购,请使用"?",如下:
Entry.objects.order_by('&#39)
答案 1 :(得分:1)
不是一次挑选一个随机项,而是可以使用random.sample
一步完成:
random.sample(query_objects, 3)