J'ai un modèle qui représente des peintures que je présente sur mon site. Sur la page Web principale, j'aimerais en montrer quelques-uns: le plus récent, celui qui n'a pas été visité la plupart du temps, le plus populaire et un aléatoire.
J'utilise Django 1.0.2.
Alors que les 3 premiers d'entre eux sont faciles à tirer en utilisant les modèles django, le dernier (aléatoire) me cause des problèmes. Je peux ofc le coder à mon avis, à quelque chose comme ceci:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Cela ne ressemble pas à quelque chose que j'aimerais avoir à mon avis - cela fait entièrement partie de l'abstraction de la base de données et devrait être dans le modèle. De plus, ici, je dois m'occuper des enregistrements supprimés (alors le nombre de tous les enregistrements ne me couvrira pas toutes les valeurs clés possibles) et probablement beaucoup d'autres choses.
D'autres options comment je peux le faire, de préférence d'une manière ou d'une autre à l'intérieur de l'abstraction du modèle?