From a802fb792f3201f3c0d5bcb80c19fac8fe4f6525 Mon Sep 17 00:00:00 2001 From: Bai Date: Mon, 21 Dec 2020 16:49:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=90=BA=E5=B8=A6disk=5Finfo=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=B6=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/drf/parsers/base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/common/drf/parsers/base.py b/apps/common/drf/parsers/base.py index 605dcdd08..c8619b34e 100644 --- a/apps/common/drf/parsers/base.py +++ b/apps/common/drf/parsers/base.py @@ -1,6 +1,7 @@ import abc import json import codecs +from rest_framework import serializers from django.utils.translation import ugettext_lazy as _ from rest_framework.parsers import BaseParser from rest_framework import status @@ -83,14 +84,17 @@ class BaseFileParser(BaseParser): new_row.append(col) return new_row - @staticmethod - def process_row_data(row_data): + def process_row_data(self, row_data): """ 构建json数据后的行数据处理 """ new_row_data = {} + serializer_fields = self.serializer_cls().fields for k, v in row_data.items(): if isinstance(v, list) or isinstance(v, dict) or isinstance(v, str) and k.strip() and v.strip(): + # 解决类似disk_info为字符串的'{}'的问题 + if not isinstance(v, str) and isinstance(serializer_fields[k], serializers.CharField): + v = str(v) new_row_data[k] = v return new_row_data -- GitLab