# up humiture

This commit is contained in:
xianfuxing 2019-09-01 13:31:30 +08:00
parent b824f8e6c3
commit e0fb6d9727
4 changed files with 38 additions and 10 deletions

View File

@ -35,7 +35,15 @@ class MosqPostListSerializer(serializers.ModelSerializer):
class DeviceTempLogSerializer(serializers.ModelSerializer):
last_time = serializers.SerializerMethodField()
create_time = serializers.SerializerMethodField()
class Meta:
model = DeviceTempLog
fields = '__all__'
fields = ['device_id', 'temperature', 'humidity', 'last_time', 'create_time']
def get_last_time(self, obj):
return obj.last_time.strftime('%Y-%m-%d %H:%M:%S')
def get_create_time(self, obj):
return obj.last_time.strftime('%Y-%m-%d %H:%M:%S')

View File

@ -1,8 +1,10 @@
import pytz
from rest_framework.generics import (
ListAPIView,
RetrieveAPIView,
CreateAPIView
)
from django.utils.timezone import timedelta, datetime
from rest_framework import filters
from rest_framework.pagination import PageNumberPagination
from django_filters.rest_framework import DjangoFilterBackend
@ -75,16 +77,15 @@ class DeviceTempLogListAPIView(ListAPIView, RoleMixin, DeviceListMixin):
def get_queryset(self, *args, **kwargs):
user_roles = self.get_role()
queryset_list = DeviceTempLog.objects.get_queryset().order_by('-create_time')
queryset = DeviceTempLog.objects.get_queryset().order_by('-create_time')
if 'staff' in user_roles or 'admin' in user_roles:
device_list = self.get_device_list()
device_ids = [query.device_id for query in device_list if query.org == self.request.user.org]
queryset_list = queryset_list.filter(device_id__in=device_ids)
# device_id = self.request.GET.get('device_id')
# if device_id:
# queryset_list = queryset_list.filter(device_id__icontains=device_id)
return queryset_list
queryset = queryset.filter(device_id__in=device_ids)
last_day = self.request.GET.get('last_day')
if last_day == '1':
t = datetime.now().replace(tzinfo=pytz.timezone('UTC')) - timedelta(days=1)
queryset = queryset.filter(last_time__gte=t).filter(last_time__minute=0)
return queryset

View File

@ -0,0 +1,19 @@
# Generated by Django 2.2.4 on 2019-09-01 02:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('smart', '__first__'),
('mosquito', '0010_initial'),
]
operations = [
migrations.AlterField(
model_name='devicetemplog',
name='last_time',
field=models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='日志时间'),
),
]

View File

@ -93,7 +93,7 @@ class DeviceTempLog(models.Model):
device_id = models.CharField(max_length=100, verbose_name='设备ID')
temperature = models.DecimalField(max_digits=6, decimal_places=2, verbose_name='温度')
humidity = models.DecimalField(max_digits=6, decimal_places=2, verbose_name='湿度')
last_time = models.DateTimeField(null=True, blank=True, verbose_name='日志时间')
last_time = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name='日志时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta: