diff --git a/apps/counter/api/serializers.py b/apps/counter/api/serializers.py index 7167df4..aa332b5 100644 --- a/apps/counter/api/serializers.py +++ b/apps/counter/api/serializers.py @@ -1,7 +1,5 @@ -import pytz from django.db.models import Q -from datetime import datetime, time -from django.db.models import Sum +from django.core.cache import cache from rest_framework import serializers from counter.models import DeviceCount, DeviceInfo from mosquito.models import DeviceInfo as CelexDeviceInfo @@ -42,10 +40,16 @@ class DeviceCountSerializer(serializers.ModelSerializer): return obj.data_time.strftime('%Y-%m-%d %H:%M:%S') def get_device_name(self, obj): - qs = CelexDeviceInfo.objects.filter(device_id=obj.device_id) + device_id = obj.device_id + cache_content = cache.get(device_id) + if cache_content: + return cache_content + qs = CelexDeviceInfo.objects.filter(device_id=device_id) if qs.count() > 0: device = qs[0] - return device.device_name + device_name = device.device_name + cache.set(device_id, device_name, 60 * 60 * 24) + return device_name return None diff --git a/apps/counter/mixins/role.py b/apps/counter/mixins/role.py index 81b6c3a..13d0ce7 100644 --- a/apps/counter/mixins/role.py +++ b/apps/counter/mixins/role.py @@ -13,7 +13,7 @@ class RoleMixin(object): class DeviceListMixin(object): @staticmethod def get_device_list(): - if cache.has_key('device_list'): + if cache.get('device_list'): device_list = cache.get('device_list') else: device_list = DeviceInfo.objects.get_queryset().order_by('-online')