优化设备信息接口,一页展示

This commit is contained in:
VIJAY\vijay 2022-12-01 12:15:47 +08:00
parent 7f617c8f17
commit fb907262be
2 changed files with 25 additions and 5 deletions

View File

@ -43,3 +43,17 @@ class WeatherlogHistoryPagination(PageNumberPagination):
page_size_query_param = 'limit' page_size_query_param = 'limit'
page_query_param = 'page' page_query_param = 'page'
max_page_size = 1000 max_page_size = 1000
class DeviceInfoPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'limit'
page_query_param = 'page'
max_page_size = 1000
class WeatherStationInfoPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'limit'
page_query_param = 'page'
max_page_size = 1000

View File

@ -16,7 +16,13 @@ from rest_framework.filters import SearchFilter, OrderingFilter
from django.db.models import Q from django.db.models import Q
from counter.mixins.role import RoleMixin, DeviceListMixin, WeatherStationListMixin from counter.mixins.role import RoleMixin, DeviceListMixin, WeatherStationListMixin
from ..models import Mosquito, MosqPost, DeviceTempLog, WeatherLog, WeatherStationInfo, DeviceInfo from ..models import Mosquito, MosqPost, DeviceTempLog, WeatherLog, WeatherStationInfo, DeviceInfo
from .pagination import PostLimitOffsetPagination, DeviceLogHistoryPagination, WeatherlogHistoryPagination from .pagination import (
PostLimitOffsetPagination,
DeviceLogHistoryPagination,
WeatherlogHistoryPagination,
DeviceInfoPagination,
WeatherStationInfoPagination,
)
from .serializers import ( from .serializers import (
MosqListSerializer, MosqListSerializer,
MosqPostListSerializer, MosqPostListSerializer,
@ -157,11 +163,11 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationListMixin):
return queryset return queryset
class WeatherStationInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin): class WeatherStationInfoAPIView(ListAPIView, RoleMixin):
serializer_class = WeatherStationInfoSerializer serializer_class = WeatherStationInfoSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
filter_backends = [SearchFilter, OrderingFilter] filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination pagination_class = WeatherStationInfoPagination
search_fields = ['name', 'device_id'] search_fields = ['name', 'device_id']
def get_queryset(self, *args, **kwargs): def get_queryset(self, *args, **kwargs):
@ -177,11 +183,11 @@ class WeatherStationInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin)
return queryset_list return queryset_list
class DeviceInfoAPIView(ListAPIView, RoleMixin, WeatherStationListMixin): class DeviceInfoAPIView(ListAPIView, RoleMixin):
serializer_class = DeviceInfoSerializer serializer_class = DeviceInfoSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
filter_backends = [SearchFilter, OrderingFilter] filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination pagination_class = DeviceInfoPagination
search_fields = ['name', 'device_id'] search_fields = ['name', 'device_id']
def get_queryset(self, *args, **kwargs): def get_queryset(self, *args, **kwargs):