From 43efaab8cd41c0d72875ebd5c25db38f049ba883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Wed, 29 Jun 2022 16:56:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E6=B3=A8=E5=9D=90=E6=A0=87=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/third/serializers.py | 10 +++++++--- apps/third/views_d.py | 19 ++----------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/apps/third/serializers.py b/apps/third/serializers.py index ab473f83..0500776d 100755 --- a/apps/third/serializers.py +++ b/apps/third/serializers.py @@ -1,6 +1,8 @@ from rest_framework import serializers from apps.am.models import Area +from apps.third.models import TDevice +from apps.utils.serializers import CustomModelSerializer class RequestCommonSerializer(serializers.Serializer): @@ -23,12 +25,14 @@ class BindAreaSerializer(serializers.Serializer): label="区域ID") -class LabelLocationSerializer(serializers.Serializer): - code = serializers.CharField(label='设备唯一标识') - location = serializers.JSONField(label='坐标信息') +class LabelLocationSerializer(CustomModelSerializer): + class Meta: + model = TDevice + fields = ['type', 'location', 'area', 'areas'] class BindAreasSerializer(serializers.Serializer): + type = serializers.CharField(label='设备类型') codes = serializers.ListField(child=serializers.CharField(), label='标识列表') areas = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(), label="区域ID列表", diff --git a/apps/third/views_d.py b/apps/third/views_d.py index f7ae1f20..a8613caf 100644 --- a/apps/third/views_d.py +++ b/apps/third/views_d.py @@ -50,29 +50,14 @@ class TDeviceViewSet(CustomGenericViewSet): _, res = dhClient.request(**dhapis['channel_list'], json=request.data) return Response(res) - @action(methods=['post'], detail=False, perms_map={'post': 'tdevice:label_location'}, - serializer_class=LabelLocationSerializer) + @action(methods=['post'], detail=True, perms_map={'post': 'tdevice:label_location'}, + serializer_class=LabelLocationSerializer, lookup_field='code') def label_location(self, request): """ 标注坐标位置 标注坐标位置 """ - serializer = self.get_serializer(data=request.data) - serializer.is_valid(raise_exception=True) - vdata = serializer.vdata - td = TDevice.objects.filter(code=vdata['code']).first() - if td: - td.location = vdata['location'] - td.update_by = request.user - td.save() - else: - td = TDevice() - td.type = TDevice.DEVICE_VCHANNEL - td.code = vdata['code'] - td.location = vdata['location'] - td.create_by = request.user - td.save() return Response() @action(methods=['post'], detail=False, perms_map={'post': 'tdevice:bind_area'},