假设我有一个观点:
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
我想我的尝试是不可能的,因为在指定查询集之前,分页器不知道它是否在最后一页上。鸡肉和鸡蛋的情况。
答案 0 :(得分:1)
要使 self.paginator.get_next_link()起作用,您必须使用 self.paginate_queryset(self.queryset)。通常,这在视图方法中使用,例如list()而不是get_queryset()(两者都可以使用!)。
然后,使用
if not self.paginator.get_next_link():
# You're in last page
# your code goes here