Chọn một phần tử ngẫu nhiên từ danh sách tất cả các đối tượng cơ sở dữ liệu không phải là một giải pháp goog vì việc truy xuất tất cả các phần tử của cơ sở dữ liệu có thể có tác động lớn đến hiệu suất, việc sử dụng order_by('?')
cũng vậy như đã đề cập trong tài liệu django
.
Giải pháp tốt nhất nên là truy xuất một phần tử có chỉ mục ngẫu nhiên:
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]