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