16 lines
704 B
Python
16 lines
704 B
Python
from rest_framework.pagination import PageNumberPagination
|
|
from rest_framework.exceptions import ParseError
|
|
|
|
class MyPagination(PageNumberPagination):
|
|
page_size = 10
|
|
page_size_query_param = 'page_size'
|
|
|
|
class PageOrNot:
|
|
def paginate_queryset(self, queryset):
|
|
if (self.paginator is None):
|
|
return None
|
|
elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()<500:
|
|
return None
|
|
elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()>=500:
|
|
return ParseError('单次请求数据量大,请求中止')
|
|
return self.paginator.paginate_queryset(queryset, self.request, view=self) |