1. 在settings中进行注册
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
2. 在utils/myPagination.py中根据业务要求自定义分页返回结果
from collections import OrderedDict
from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response
class MyPageNumberPagination(PageNumberPagination):
page_size_query_param = 'pagesize'
def get_paginated_response(self, data):
return Response(OrderedDict([
('page', self.page.number),
('pages', self.page.paginator.num_pages),
3. 在视图中使用
from meiduo_admin.utils.myPagination import MyPageNumberPagination
class UsersView(ListAPIView):
pagination_class = MyPageNumberPagination
serializer_class = UsersSerialize
queryset = models.User.objects.filter(is_staff=False).all().order_by('-date_joined')
4. 路由
from meiduo_admin.user.user_views import UsersView
path('users/', UsersView.as_view()),
5. postman返回结果
