diff --git a/apps/counter/api/views.py b/apps/counter/api/views.py index 1de74c4..ab68e02 100644 --- a/apps/counter/api/views.py +++ b/apps/counter/api/views.py @@ -12,7 +12,11 @@ from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated from rest_framework.filters import SearchFilter, OrderingFilter -from mosquito.api.pagination import PostLimitOffsetPagination, PostPageNumberPagination +from mosquito.api.pagination import ( + PostLimitOffsetPagination, + PostPageNumberPagination, + DeviceLogHistoryPagination +) from .serializers import ( DeviceCountSerializer, DeviceInfoSerializer, @@ -133,7 +137,7 @@ class DeviceLogHistoryListAPIView(ListAPIView, RoleMixin, DeviceListMixin): serializer_class = DeviceLogHistorySerializer permission_classes = [IsAuthenticated] filter_backends = [SearchFilter, OrderingFilter] - pagination_class = PostPageNumberPagination + pagination_class = DeviceLogHistoryPagination search_fields = ['device_id', 'date'] def get_queryset(self, *args, **kwargs): diff --git a/apps/mosquito/api/pagination.py b/apps/mosquito/api/pagination.py index c21a081..9c2e05c 100644 --- a/apps/mosquito/api/pagination.py +++ b/apps/mosquito/api/pagination.py @@ -8,3 +8,10 @@ class PostLimitOffsetPagination(LimitOffsetPagination): class PostPageNumberPagination(PageNumberPagination): page_size = 10 + + +class DeviceLogHistoryPagination(PageNumberPagination): + page_size = 10 + page_size_query_param = 'limit' + page_query_param = 'page' + max_page_size = 1000 diff --git a/apps/mosquito/api/views.py b/apps/mosquito/api/views.py index b97c34b..9fdb9f1 100644 --- a/apps/mosquito/api/views.py +++ b/apps/mosquito/api/views.py @@ -14,7 +14,7 @@ from rest_framework.filters import SearchFilter, OrderingFilter from django.db.models import Q from counter.mixins.role import RoleMixin, DeviceListMixin from ..models import Mosquito, MosqPost, DeviceTempLog -from .pagination import PostLimitOffsetPagination, PostPageNumberPagination +from .pagination import PostLimitOffsetPagination, DeviceLogHistoryPagination from .serializers import ( MosqListSerializer, MosqPostListSerializer, @@ -70,7 +70,7 @@ class DeviceTempLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin): serializer_class = DeviceTempLogSerializer permission_classes = [IsAuthenticated] filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter) - pagination_class = DeviceLogPagination + pagination_class = DeviceLogHistoryPagination search_fields = ['device_id'] filterset_fields = ['device_id'] ordering_fields = ['-last_time']