From 44d5b08a69798c38da0d35277540bb87b6ed208d Mon Sep 17 00:00:00 2001 From: xiaji Date: Tue, 19 May 2026 14:08:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Ddrf-yasg=E5=B5=8C?= =?UTF-8?q?=E5=A5=97=E5=BA=8F=E5=88=97=E5=8C=96=E5=99=A8=E5=AF=BC=E8=87=B4?= =?UTF-8?q?Redoc/Swagger=20500=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- device_management/serializers.py | 8 +++----- device_management/views.py | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/device_management/serializers.py b/device_management/serializers.py index b10b605..14f1bc4 100644 --- a/device_management/serializers.py +++ b/device_management/serializers.py @@ -33,10 +33,8 @@ class DeviceAttachmentSerializer(serializers.ModelSerializer): class DeviceSerializer(serializers.ModelSerializer): - serials = DeviceSerialSerializer(many=True, required=False) - ips = DeviceIPSerializer(many=True, required=False) - maintenance_records = MaintenanceRecordSerializer(many=True, read_only=True) - attachments = DeviceAttachmentSerializer(many=True, read_only=True) + serials = serializers.ListField(child=serializers.DictField(), required=False, write_only=True) + ips = serializers.ListField(child=serializers.DictField(), required=False, write_only=True) service_duration_days = serializers.IntegerField(read_only=True) is_warranty_expired = serializers.BooleanField(read_only=True) primary_serial = serializers.SerializerMethodField() @@ -50,7 +48,7 @@ class DeviceSerializer(serializers.ModelSerializer): 'thumbnail', 'status', 'responsible_person', 'warranty_expire', 'service_duration_days', 'is_warranty_expired', 'primary_serial', 'primary_ip', 'latest_maintenance', 'serials', 'ips', - 'maintenance_records', 'attachments', 'created_at', 'updated_at'] + 'created_at', 'updated_at'] read_only_fields = ['created_at', 'updated_at'] def get_primary_serial(self, obj): diff --git a/device_management/views.py b/device_management/views.py index 5443640..bd5f2cc 100644 --- a/device_management/views.py +++ b/device_management/views.py @@ -7,6 +7,8 @@ from rest_framework import viewsets, status, parsers, renderers from rest_framework.decorators import action, api_view, parser_classes from rest_framework.response import Response from rest_framework.permissions import IsAuthenticatedOrReadOnly, IsAuthenticated +from drf_yasg.utils import swagger_auto_schema +from drf_yasg import openapi as swagger_openapi from openpyxl import Workbook, load_workbook from openpyxl.styles import Font import pandas as pd