我有疑问:
items = MyModel.objects.all().order_by('nr')[:10]
我得到了 10 个数量更高的项目。现在我必须混合这些结果。怎么做?
我有疑问:
items = MyModel.objects.all().order_by('nr')[:10]
我得到了 10 个数量更高的项目。现在我必须混合这些结果。怎么做?
奇怪的是,这个没有很好记录的功能有效:
Country.objects.order_by('?')
来源:http ://www.jpstacey.info/blog/2008/09/03/random-ordering-of-query-results-in-django
令人惊讶的是,现有文档几乎没有 Google 果汁,除非您搜索“随机”而不是“随机”。
获取切片后,您无法重新排序查询,因此请使用不同的方法
import random
items = sorted(MyModel.objects.all().order_by('nr')[:10], key=lambda x: random.random())
好的,您无法在拉入查询集后对其重新排序,但您可以这样做
import random
items = list(MyModel.objects.all().order_by('nr')[:10])
random.shuffle(items)