Tag archives: случайная

Получение случайных объектов из queryset в Django

Получение случайных объектов из queryset в Django

Часто в проектах Django необходимо сделать выборку случайных записей из базы.

О
бычно для получения случайного набора элементов (среза элементов) в Django "обычным" способом делают так:

Book.objects.all (). Order_by ('?')[: 10]

Приведенный выше код, сортирует все книги в произвольном порядке, а затем выбирает первые 10 объектов.
Этот подход не является
, правда, эффективным в MySQL. С использованием "ORDER BY ?" действительно это дорого для запроса.

Поэтому,
хорошо искать другие способы получить случайные элементы (случайный срез).

Например можно случайный срез записей делать так
:

import random
count = Book.objects.all().count()
slice = random.random() * (count - 10)
Book.objects.all()[slice: slice+10]


Приведенный выше ...

Читать далее