假设我有一个观点:
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/