气象台设备名称从转存数据改为后台气象台信息表

This commit is contained in:
VIJAY\vijay 2022-09-07 15:23:47 +08:00
parent 56cc550134
commit 9a5d247c07
2 changed files with 21 additions and 2 deletions

View File

@ -1,5 +1,6 @@
from rest_framework import serializers
from mosquito.models import Mosquito, MosqPost, DeviceTempLog, WeatherLog
from django.core.cache import cache
from mosquito.models import Mosquito, MosqPost, DeviceTempLog, WeatherLog, WeatherStationInfo
from smart.api.serializers import SmartPushListSerializer
@ -50,6 +51,7 @@ class DeviceTempLogSerializer(serializers.ModelSerializer):
class WeatherLogSerializer(serializers.ModelSerializer):
device_name = serializers.SerializerMethodField()
power = serializers.SerializerMethodField()
data_time = serializers.SerializerMethodField()
create_time = serializers.SerializerMethodField()
@ -79,11 +81,28 @@ class WeatherLogSerializer(serializers.ModelSerializer):
'create_time',
]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.latest = None
self.cur_device = None
def get_power(self, obj):
# power max 12.6V, min 8.5V
power = int((float(obj.power) - 8.5) / 4.1 * 100)
return str(power)
def get_device_name(self, obj):
device_id = obj.device_id
device = cache.get(device_id)
if device:
self.device = device
return device.device_name
else:
return obj.device_name
return None
def get_data_time(self, obj):
return obj.data_time.strftime('%Y-%m-%d %H:%M:%S')
def get_create_time(self, obj):
return obj.data_time.strftime('%Y-%m-%d %H:%M:%S')

View File

@ -132,7 +132,7 @@ class WeatherLogListAPIView(ListAPIView, RoleMixin, WeatherStationListMixin):
if qs.count() > 0:
queryset = qs
else:
qs = WeatherLog.objects.filter(device_name__contains=device)
qs = WeatherStationInfo.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')