私のサイトに掲載している絵画を表すモデルがあります。メインのWebページで、いくつか紹介します。最新の、最も頻繁にアクセスされなかったもの、最も人気のあるもの、ランダムなものです。
私はDjango 1.0.2を使用しています。
最初の3つはdjangoモデルを使用して簡単にプルできますが、最後の1つ(ランダム)は私に問題を引き起こします。私の見解では、次のようにコードを記述することができます。
number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
それは私が自分の考えに持ちたいもののようには見えません-これは完全にデータベース抽象化の一部であり、モデルにあるべきです。また、ここでは、削除されたレコード(すべてのレコードの数では考えられるすべてのキー値がカバーされない)と、おそらく他の多くのことを処理する必要があります。
他のオプションでどのようにしてそれを行うことができますか?