Djangoのデータベースからランダムでオブジェクトを取り出したい

調べたところいろいろ方法はあるようだが、個人的に一番簡単だと思った方法を示す。

 

「前提」

models.pyにTestクラスを設定した。

 

「コード」

    
    counter = Test.objects.all().count()
    test = Test.objects.get(id=randint(1, counter))
    

counter = Test.objects.all().count()

で現在dbに登録されているオブジェクトの個数を取得する。 そして、test = Test.objects.get(id=randint(1, counter)) randint(a,b)a<=i<=bを満たすiの中からランダムに整数を一つ選び出し、その数字とidが一致するTestオブジェクトをtestに格納するという内容である。