documentationによれば、GenericAPIView
を継承するクラスを使用する場合は、ページネーションを有効にするために特別なことは必要ありません。PageNumberページングと固定次数のないクエリセット
私はdjangoとdjango restフレームワークのコードを見てきました。ViewSet querysetは発注されていないようです。ページ番号付けでは、のSQLキーワードLIMIT
とOFFSET
がクエリに追加されます。
私が理解していないことは、決定論的順序を持たないクエリセットをどのように処理するかです。なぜドキュメンテーションがビューセットクエリーセットの最後に.order_by()
ステートメントを追加すると言っていないのですか?
多くのデータベースではクエリ間で一貫した順序がありますが、不幸にもポストグルではそうではなく、テーブルを更新すると順序が変わる傾向があります。 –
その場合は、 'PageNumberPagination'を使用するときにviewsetクエリセットを順序付けする必要があるということは一度も言及されていないため、これは大きな欠陥です。さらに、「CursorPagination」を使用すると、DRFによってクエリーセットで注文が強制されます。 –
https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/pagination.py#L467 –