Фильтрация случайных объектов в django
Как я могу отфильтровать 12 случайных объектов из модели в django. Я пытался сделать это, но это не работает и возвращает мне только 1 объект.
max = product.objects.aggregate(id = Max('id'))
max_p = int(max['id'])
l = []
for s in range(1 , 13):
l.append(random.randint(1 , max_p))
for i in l:
great_proposal = product.objects.filter(id=i)
Я уверен, что код правильный, но возможно вы не поняли, что вы просто используете great_proposal
в качестве переменной для сохранения вывода, который не является массивом, и поэтому возвращает только один вывод.
Попытка:
result_array = []
for i in l:
result.append(product.objects.filter(index=i))
products = product.objects.all().order_by('-id')[:50]
great_proposal1 = random.sample(list(products) , 12)
Привет . Это сработало с этим кодом !
Попробуйте это:
product.objects.order_by('?')[:12]
'?' будет "сортировать" случайным образом, и "[:12]" получит только 12 объектов.