修复用device_id和device_name不能搜索的问题

This commit is contained in:
VIJAY\vijay 2022-08-23 14:12:32 +08:00
parent ff0e65898b
commit 2f2dfbbe91
1 changed files with 10 additions and 0 deletions

View File

@ -117,6 +117,7 @@ class WeatherLogListAPIView(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()
device = self.request.GET.get('device')
start = self.request.GET.get('start') start = self.request.GET.get('start')
end = self.request.GET.get('end') end = self.request.GET.get('end')
queryset = WeatherLog.objects.get_queryset().order_by('-data_time') queryset = WeatherLog.objects.get_queryset().order_by('-data_time')
@ -125,6 +126,15 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
devices = self.get_device_list() devices = self.get_device_list()
device_ids = [device.device_id for device in devices if device.org == self.request.user.org] device_ids = [device.device_id for device in devices if device.org == self.request.user.org]
queryset = queryset.filter(device_id__in=device_ids) queryset = queryset.filter(device_id__in=device_ids)
if device:
# device_id or device_name
qs = queryset.filter(device_id__icontains=device)
if qs.count() > 0:
queryset = qs
else:
qs = WeatherLog.objects.filter(device_name__contains=device)
device_ids = [device.device_id for device in qs]
queryset = queryset.filter(device_id__in=device_ids)
last_day = self.request.GET.get('last_day') last_day = self.request.GET.get('last_day')
if last_day == '1': if last_day == '1':
t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1) t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1)