猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

Django REST framework で UnorderedObjectListWarning

f:id:yoshiki_utakata:20210221170223p:plain

Django REST framework でこのようなエラーが出ることがありました。

UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered

このエラーは、「オブジェクトの順序が定まっていない」というエラーです。

Django REST framework には、ページングの機能がありますが、DBに投げるクエリに ORDER BY を指定しない場合、返ってくるデータの順番が定まっておらず、ページングするときに、データが重複したり、データがバラバラになったりします。

クエリに order_by をつけたり、デフォルトの order を付与する必要があるかなと思います。