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

本業エンジニアリングマネージャー。副業Webエンジニア。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 を付与する必要があるかなと思います。