根据文档 http://www.django-rest-framework.org/api-guide/pagination/#pagenumberpagination,当使用继承自的类时,无需任何特殊即可启用分页GenericAPIView
.
我查看了 django 和 django Rest Framework 的代码以及ViewSet查询集似乎没有排序。分页仅添加SQL关键词LIMIT
and OFFSET
到查询。
我不明白的是如何处理没有确定性顺序的查询集?为什么文档没有说添加.order_by()
末尾的声明ViewSet查询集?
需要进行排序才能使分页正常工作。如果没有它,您可能会在不同页面上重复几行,并且很少丢失。 django 文档中也提到了:
为了保持分页一致,查询集应该排序,例如与
order_by() 子句或模型上的默认排序。
https://docs.djangoproject.com/en/2.2/topics/pagination/#required-arguments https://docs.djangoproject.com/en/2.2/topics/pagination/#required-arguments
这篇关于默认排序的文章也值得阅读:https://learn.microsoft.com/pl-pl/archive/blogs/conor_cunningham_msft/no-seatbelt-expecting-order-without-order-by https://learn.microsoft.com/pl-pl/archive/blogs/conor_cunningham_msft/no-seatbelt-expecting-order-without-order-by
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)