# 添加时间查询
This commit is contained in:
parent
431cd58c8e
commit
6d8dee4314
|
@ -206,6 +206,8 @@ class DeviceDailyListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
|||
def get_queryset(self, *args, **kwargs):
|
||||
user_roles = self.get_role()
|
||||
device_id = self.request.GET.get('device_id')
|
||||
start = self.request.GET.get('start')
|
||||
end = self.request.GET.get('end')
|
||||
queryset = DevicePostStatistic.objects.get_queryset().order_by('-date')
|
||||
|
||||
if 'staff' in user_roles or 'manager' in user_roles:
|
||||
|
@ -216,4 +218,14 @@ class DeviceDailyListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
|
|||
if device_id:
|
||||
queryset = queryset.filter(device_id__icontains=device_id)
|
||||
|
||||
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(date__gte=start, date__lt=end + timedelta(days=1))
|
||||
|
||||
return queryset
|
||||
|
|
Loading…
Reference in New Issue