python - 如何检测用户是否在 Django REST(分页)的最后一页?

标签 python django pagination django-rest-framework

假设我有一个观点:

class FooPagination(PageNumberPagination):
    page_size = 10

class FooView(ListAPIView):
    serializer_class = FooSerializer
    pagination_class = FooPagination
    def get_queryset(self):
        if self.paginator.?
            # do something special

如何检测用户是否位于 Django REST(分页)的最后一页?

更新如果我尝试:

print(self.paginator.get_next_link())

我得到:

Exception Type: AttributeError
Exception Value: 'FooPagination' object has no attribute 'page'
Exception Location: C:\Users\Daniel\venvs\brook\lib\site-packages\rest_framework\pagination.py in get_next_link, line 297

我想我正在尝试的方法是不可能的,因为分页器不知道它是否在最后一页上,直到指定查询集。这是先有鸡还是先有蛋的情况。

最佳答案

要使 self.paginator.get_next_link() 正常工作,您必须使用 self.paginate_queryset(self.queryset)。通常,这在 View 方法中使用,例如 list() 而不是 get_queryset()(无论如何都可以!)。

然后,使用

 if not self.paginator.get_next_link():
     #  You're in last page
     #  your code goes here

关于python - 如何检测用户是否在 Django REST(分页)的最后一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32566248/

相关文章:

javascript - Angularjs:即使按下页面按钮后,dir-pagination-controls 也不显示下一页

Python 2.7 : Pandas datetime does not work for future dates?

python - 如何将ttk中的复选按钮对齐到左侧

python - python 中非常奇怪的 __getattr__ 行为

python - Django URL 中的 Slug

jquery - 如何为 Bootstrap "list-group-item"创建分页?

python - QTableWidget - 将按钮拖放到 QTableWidget 中的单元格中

python - 使用 Python read() 图像文件并将其发送到 HttpResponse

javascript - 使用 Django 作为后端,将所选选项从一个表单传递到同一 html 页面中的另一个表单

php - Laravel 抛出 : method paginate does not exist error