У меня есть модель, которая представляет картины, которые я представляю на своем сайте. На главной веб-странице я хотел бы показать некоторые из них: новейшую, ту, которую не посещали большую часть времени, самую популярную и случайную.
Я использую 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)
Это не похоже на то, что я хотел бы иметь, на мой взгляд, - это полностью часть абстракции базы данных и должно быть в модели. Кроме того, здесь мне нужно позаботиться об удаленных записях (тогда число всех записей не покроет меня всеми возможными значениями ключей) и, возможно, множеством других вещей.
Любые другие варианты, как я могу это сделать, желательно как-то внутри абстракции модели?