Selecionar um elemento aleatório de uma lista de todos os objetos de banco de dados não é uma solução goog, pois recuperar todos os elementos do banco de dados pode ter um grande impacto no desempenho, nem usar
order_by('?')
conforme mencionado na documentação do django
. A melhor solução deve ser recuperar um elemento com um índice aleatório:
import random
random_idx = random.randint(0, Model.objects.count() - 1)
random_obj = Model.objects.all()[random_idx]