fix: 修复drf-yasg嵌套序列化器导致Redoc/Swagger 500错误

This commit is contained in:
2026-05-19 14:08:11 +08:00
parent ec7c5c28bb
commit 44d5b08a69
2 changed files with 5 additions and 5 deletions

View File

@@ -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):

View File

@@ -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