Mam model przedstawiający obrazy, które prezentuję na mojej stronie. Na głównej stronie chciałbym pokazać kilka z nich: najnowsze, najczęściej nie odwiedzane, najpopularniejsze i przypadkowe.
Używam Django 1.0.2.
Podczas gdy pierwsze 3 z nich są łatwe do ściągnięcia za pomocą modeli django, ostatnia (losowa) sprawia mi trochę problemów. Moim zdaniem mogę to ofc zakodować na coś takiego:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Nie wygląda to na coś, co chciałbym mieć w mojej opinii - jest to całkowicie część abstrakcji bazy danych i powinno znajdować się w modelu. Również tutaj muszę zająć się usuniętymi rekordami (wtedy liczba wszystkich rekordów nie obejmie wszystkich możliwych wartości kluczowych) i prawdopodobnie wiele innych rzeczy.
Jakieś inne opcje, jak mogę to zrobić, najlepiej jakoś wewnątrz abstrakcji modelu?