Ich habe ein Modell, das Bilder darstellt, die ich auf meiner Website präsentiere. Auf der Hauptwebseite möchte ich einige davon zeigen: die neueste, eine, die die meiste Zeit nicht besucht wurde, die beliebteste und eine zufällige.
Ich benutze Django 1.0.2.
Während die ersten drei mit Django-Modellen leicht zu ziehen sind, bereitet mir die letzte (zufällige) einige Probleme. Ich kann es aus meiner Sicht so codieren:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Es sieht nicht nach etwas aus, das ich aus meiner Sicht gerne hätte - dies ist vollständig Teil der Datenbankabstraktion und sollte im Modell enthalten sein. Außerdem muss ich mich hier um entfernte Datensätze kümmern (dann deckt die Anzahl aller Datensätze nicht alle möglichen Schlüsselwerte ab) und wahrscheinlich um viele andere Dinge.
Gibt es noch andere Möglichkeiten, wie ich das machen kann, vorzugsweise irgendwie innerhalb der Modellabstraktion?