# 添加时间搜索
This commit is contained in:
parent
6d8dee4314
commit
1a681a3c67
|
@ -1,3 +1,4 @@
|
||||||
|
import re
|
||||||
import pytz
|
import pytz
|
||||||
from rest_framework.generics import (
|
from rest_framework.generics import (
|
||||||
ListAPIView,
|
ListAPIView,
|
||||||
|
@ -5,6 +6,7 @@ from rest_framework.generics import (
|
||||||
CreateAPIView
|
CreateAPIView
|
||||||
)
|
)
|
||||||
from django.utils.timezone import timedelta, datetime
|
from django.utils.timezone import timedelta, datetime
|
||||||
|
from rest_framework.response import Response
|
||||||
from rest_framework import filters
|
from rest_framework import filters
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
|
@ -77,6 +79,8 @@ class DeviceTempLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
||||||
|
|
||||||
def get_queryset(self, *args, **kwargs):
|
def get_queryset(self, *args, **kwargs):
|
||||||
user_roles = self.get_role()
|
user_roles = self.get_role()
|
||||||
|
start = self.request.GET.get('start')
|
||||||
|
end = self.request.GET.get('end')
|
||||||
queryset = DeviceTempLog.objects.get_queryset().order_by('create_time')
|
queryset = DeviceTempLog.objects.get_queryset().order_by('create_time')
|
||||||
|
|
||||||
if 'staff' in user_roles or 'manager' in user_roles:
|
if 'staff' in user_roles or 'manager' in user_roles:
|
||||||
|
@ -88,4 +92,14 @@ class DeviceTempLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
||||||
t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1)
|
t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1)
|
||||||
queryset = queryset.filter(last_time__gte=t).filter(last_time__minute=0)
|
queryset = queryset.filter(last_time__gte=t).filter(last_time__minute=0)
|
||||||
|
|
||||||
|
if start and end:
|
||||||
|
t_pattern = re.compile(r'^2\d{3}-\d{1,2}-\d{1,2}$')
|
||||||
|
start_m = t_pattern.match(start)
|
||||||
|
end_m = t_pattern.match(end)
|
||||||
|
if not start_m or not end_m:
|
||||||
|
return Response({'detail': 'start or end must be format "yyyy-mm-dd"'})
|
||||||
|
start = datetime.strptime(start, '%Y-%m-%d')
|
||||||
|
end = datetime.strptime(end, '%Y-%m-%d')
|
||||||
|
queryset = queryset.filter(last_time__gte=start, last_time__lt=end + timedelta(days=1))
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
Loading…
Reference in New Issue