ストレート Django では、次の方法でランダム モデル インスタンスにアクセスできます。
randinst = MyModel.objects.order_by('?')
注: これにはパフォーマンス上の問題がありますが、sqlite バックエンドでテストしたところ、最大 100000 回の試行で本当にランダムな結果が得られました。私のアプリはこれ以上の大きなパフォーマンスを必要としないため、他のバックエンドについては心配していません。
私が達成したいことは次のとおりです。クライアントがリクエストを行い/api/v1/mymodel/?limit=10
、上記のスニペットを 10 回実行するのと同じように、tastypie を介して MyModel から 10 行のランダムなセットを取得します。次に、同じリクエストを行い、(確率の範囲内で) 10 個の異なるランダムな行を受け取ります。
注: 私はリクエストを試みましたが/api/v1/mymodel/?ordering='?'
、その適切なバリアントはすべて役に立ちませんでした。設定も役に立たないMyModelResource.Meta.ordering = ['?']
おいしいパイで私の目標を達成する方法はありますか? 他に試すべき解決策はありますか? ありがとう。