From 4f5e36099193304aad2387ca5675a25d38578065 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 20 Jul 2023 15:44:52 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=20serializer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/serializers/dynamic.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/common/serializers/dynamic.py b/apps/common/serializers/dynamic.py index e3fab256a..a42529b5a 100644 --- a/apps/common/serializers/dynamic.py +++ b/apps/common/serializers/dynamic.py @@ -52,11 +52,14 @@ def create_serializer_class(serializer_name, fields_info): # 用户定义 default 和 required 可能会冲突, 所以要处理一下 default = data.get('default', None) - if default is not None: - data['required'] = False - else: + if default is None: data.pop('default', None) data['required'] = True + elif default == '': + data['required'] = False + data['allow_blank'] = True + else: + data['required'] = False data = set_default_by_type(field_type, data, field_info) data = set_default_if_need(data, i) field_name = data.pop('name')