Sitemde sunduğum resimleri temsil eden bir modelim var. Ana web sayfasında bunlardan bazılarını göstermek istiyorum: en yeni, çoğu zaman ziyaret edilmemiş, en popüler ve rastgele.
Django 1.0.2 kullanıyorum.
İlk 3'ü django modellerini kullanarak çekmek kolay olsa da, sonuncusu (rastgele) bana biraz sorun çıkarıyor. Bence böylesi bir şeye kod yazabilirim:
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Benim görüşüme göre olmasını istediğim bir şey gibi görünmüyor - bu tamamen veritabanı soyutlamasının bir parçası ve modelde olmalı. Ayrıca, burada kaldırılan kayıtlara dikkat etmeliyim (o zaman tüm kayıtların sayısı bana tüm olası anahtar değerleri kapsamaz) ve muhtemelen diğer birçok şey.
Başka bir seçenek nasıl yapabilirim, tercihen bir şekilde model soyutlamasının içinde?