Ho un modello che rappresenta i dipinti che presento sul mio sito. Sulla pagina web principale vorrei mostrarne alcuni: il più recente, uno che non è stato visitato per la maggior parte del tempo, il più popolare e uno a caso.
Sto usando Django 1.0.2.
Mentre i primi 3 sono facili da usare con i modelli django, l'ultimo (casuale) mi dà qualche problema. Posso ofc codificarlo a mio avviso, a qualcosa del genere:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Non sembra qualcosa che mi piacerebbe avere a mio avviso, questo è interamente parte dell'astrazione del database e dovrebbe essere nel modello. Inoltre, qui devo occuparmi dei record rimossi (quindi il numero di tutti i record non mi coprirà tutti i possibili valori chiave) e probabilmente molte altre cose.
Altre opzioni su come posso farlo, preferibilmente in qualche modo all'interno dell'astrazione del modello?