# 优化分页、搜索
This commit is contained in:
parent
1a823f7734
commit
08eefbf2c1
|
@ -9,6 +9,7 @@ from mosquito.models import MosqPostStatistic, DevicePostStatistic
|
|||
|
||||
|
||||
class DeviceCountSerializer(serializers.ModelSerializer):
|
||||
device_name = serializers.SerializerMethodField()
|
||||
mosq_count = serializers.SerializerMethodField()
|
||||
signal = serializers.SerializerMethodField()
|
||||
energy = serializers.SerializerMethodField()
|
||||
|
@ -19,6 +20,7 @@ class DeviceCountSerializer(serializers.ModelSerializer):
|
|||
fields = [
|
||||
'id',
|
||||
'device_id',
|
||||
'device_name',
|
||||
'signal',
|
||||
'mosq_count',
|
||||
'energy',
|
||||
|
@ -39,6 +41,13 @@ class DeviceCountSerializer(serializers.ModelSerializer):
|
|||
def get_calc_time(self, obj):
|
||||
return obj.data_time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
def get_device_name(self, obj):
|
||||
qs = CelexDeviceInfo.objects.filter(device_id=obj.device_id)
|
||||
if qs.count() > 0:
|
||||
device = qs[0]
|
||||
return device.device_name
|
||||
return None
|
||||
|
||||
|
||||
class DeviceInfoSerializer(serializers.ModelSerializer):
|
||||
device_name = serializers.SerializerMethodField()
|
||||
|
|
|
@ -15,6 +15,7 @@ from rest_framework.filters import SearchFilter, OrderingFilter
|
|||
from mosquito.api.pagination import (
|
||||
PostLimitOffsetPagination,
|
||||
PostPageNumberPagination,
|
||||
DeviceLogListPagination,
|
||||
DeviceLogHistoryPagination
|
||||
)
|
||||
from .serializers import (
|
||||
|
@ -32,7 +33,7 @@ class DeviceLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
|||
serializer_class = DeviceCountSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
pagination_class = PostPageNumberPagination
|
||||
pagination_class = DeviceLogListPagination
|
||||
search_fields = ['device_id']
|
||||
|
||||
def get_queryset(self, *args, **kwargs):
|
||||
|
|
|
@ -10,6 +10,13 @@ class PostPageNumberPagination(PageNumberPagination):
|
|||
page_size = 10
|
||||
|
||||
|
||||
class DeviceLogListPagination(PageNumberPagination):
|
||||
page_size = 10
|
||||
page_size_query_param = 'limit'
|
||||
page_query_param = 'page'
|
||||
max_page_size = 1000
|
||||
|
||||
|
||||
class DeviceLogHistoryPagination(PageNumberPagination):
|
||||
page_size = 10
|
||||
page_size_query_param = 'limit'
|
||||
|
|
Loading…
Reference in New Issue