La selezione di un elemento casuale da un elenco di tutti gli oggetti del database non è una soluzione valida in quanto il recupero di tutti gli elementi del database può avere un grande impatto sulle prestazioni, né l'utilizzo di order_by('?')
come menzionato nella documentazione di django
.
La soluzione migliore dovrebbe essere recuperare un elemento con un indice casuale:
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]