La sélection d'un élément aléatoire dans une liste de tous les objets de la base de données n'est pas une bonne solution, car la récupération de tous les éléments de la base de données peut avoir un impact important sur les performances, ni l'utilisation de order_by('?')
comme mentionné dans la documentation Django
.
La meilleure solution devrait être de récupérer un élément avec un index aléatoire :
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]