# add pagination

This commit is contained in:
xianfuxing 2018-07-14 16:29:17 +08:00
parent 3e2ffed09c
commit fb952a8060
3 changed files with 16 additions and 0 deletions

View File

@ -0,0 +1,10 @@
from rest_framework.pagination import LimitOffsetPagination, PageNumberPagination
class PostLimitOffsetPagination(LimitOffsetPagination):
max_limit = 10
default_limit = 4
class PostPageNumberPagination(PageNumberPagination):
page_size = 4

View File

@ -8,12 +8,14 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.filters import SearchFilter, OrderingFilter
from django.db.models import Q
from ..models import Mosquito, MosqPost
from .pagination import PostLimitOffsetPagination, PostPageNumberPagination
from .serializers import MosqListSerializer, MosqPostListSerializer
class MosquitoListAPIView(ListAPIView):
serializer_class = MosqListSerializer
filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination
search_fields = ['name', 'device_id', 'region']
def get_queryset(self, *args, **kwargs):
@ -31,6 +33,7 @@ class MosquitoListAPIView(ListAPIView):
class MosquitoPostListAPIView(ListAPIView):
serializer_class = MosqPostListSerializer
filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination
search_fields = ['mosq__name', 'mosq__region']
def get_queryset(self, *args, **kwargs):

View File

@ -7,6 +7,7 @@ from rest_framework.generics import (
from rest_framework.permissions import IsAuthenticated
from rest_framework.filters import SearchFilter, OrderingFilter
from django.db.models import Q
from mosquito.api.pagination import PostLimitOffsetPagination, PostPageNumberPagination
from .serializers import SmartListSerializer, SmartPushListSerializer
from ..models import SmartModule, SmartPush
@ -14,6 +15,7 @@ from ..models import SmartModule, SmartPush
class SmartListAPIView(ListAPIView):
serializer_class = SmartListSerializer
filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination
search_fields = ['name', 'device_id', 'chip_id', 'region']
def get_queryset(self, *args, **kwargs):
@ -33,6 +35,7 @@ class SmartListAPIView(ListAPIView):
class SmartPushListAPIView(ListAPIView):
serializer_class = SmartPushListSerializer
filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination
search_fields = ['smart__name']
def get_queryset(self, *args, **kwargs):