Фильтрация случайных объектов в 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 объектов.

Вернуться на верх