Het selecteren van een willekeurig element uit een lijst van alle database-objecten is geen goede oplossing, aangezien het ophalen van alle elementen van de database een grote invloed kan hebben op de prestaties, en het gebruik van order_by('?')
ook niet. zoals vermeld in de django-documentatie
.
De beste oplossing zou moeten zijn om een element met een willekeurige index op te halen:
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]