У меня есть модель, которая представляет картины, которые я представляю на своем сайте. На главной веб-странице я хотел бы показать некоторые из них: новейшие, которые не были посещены в большинстве случаев, самые популярные и случайные.
Я использую Django 1.0.2.
В то время как первые 3 из них легко вытягиваются с использованием моделей django, последний (случайный) вызывает у меня некоторые проблемы. Я могу из кода его на мой взгляд, что-то вроде этого:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Это не похоже на то, что я хотел бы иметь на мой взгляд. Это - полностью часть абстракции базы данных и должна быть в модели. Кроме того, здесь мне нужно позаботиться об удаленных записях (тогда число всех записей не покрывает меня всеми возможными значениями ключа) и, вероятно, много других вещей.
Любые другие варианты, как я могу это сделать, желательно как-то внутри абстракции модели?