From fc30b44c01101dd049dc9bb67a0989810eb73c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E4=BD=A9=E7=8F=8A=5Bshiisa=5D?= Date: Sun, 8 Oct 2023 16:57:43 +0800 Subject: [PATCH] feat: user fields CURD #1205 --- .../apis/web/tenant_setting/serializers.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/bk-user/bkuser/apis/web/tenant_setting/serializers.py b/src/bk-user/bkuser/apis/web/tenant_setting/serializers.py index e52676dcb..75a7efbe7 100644 --- a/src/bk-user/bkuser/apis/web/tenant_setting/serializers.py +++ b/src/bk-user/bkuser/apis/web/tenant_setting/serializers.py @@ -74,12 +74,12 @@ def validate(self, attrs): default = attrs.get("default") if data_type == UserFieldDataType.ENUM.value: - self._validate_options(options=options) - self._validate_enum_default(default=default, options=options) + self._validate_options(options) + self._validate_enum_default(default, options) elif data_type == UserFieldDataType.MULTI_ENUM.value: - self._validate_options(options=options) - self._validate_multi_enum_default(default=default, options=options) + self._validate_options(options) + self._validate_multi_enum_default(default, options) return attrs @@ -95,16 +95,16 @@ def _validate_enum_default(self, default: int, options: List[Dict]): if not isinstance(default, int): raise TypeError("枚举类型自定义字段的 default 值要传递整数类型") - # 单枚举类型要求default的值为options其中一个对象的ID值 - if default is not None and default not in [option["id"] for option in options]: + # 单枚举类型要求 default 的值为 options 其中一个对象的 ID 值 + if not (default or default in [opt["id"] for opt in options]): raise serializers.ValidationError(_("默认值必须是 options 中对象的其中一个 id 值")) def _validate_multi_enum_default(self, default: List[int], options: List[Dict]): if not isinstance(default, List): raise TypeError("多选枚举类型自定义字段的 default 值需要传递列表类型") - # 多选枚举类型要求default中的值都为options其中任一对象的ID值 - if default is not None and not set(default).issubset({option["id"] for option in options}): + # 多选枚举类型要求 default 中的值都为 options 其中任一对象的 ID 值 + if not (default or set(default).issubset({opt["id"] for opt in options})): raise serializers.ValidationError(_("默认值必须属于 options 中对象的 id 值")) @@ -155,14 +155,14 @@ def _validate_enum_default(self, default: int, options: List[Dict]): if not isinstance(default, int): raise TypeError("枚举类型自定义字段的 default 值要传递整数类型") - # 单枚举类型要求default的值为options其中一个对象的ID值 - if default is not None and default not in [option["id"] for option in options]: + # 单枚举类型要求 default 的值为 options 其中一个对象的 ID 值 + if not (default or default in [opt["id"] for opt in options]): raise serializers.ValidationError(_("默认值必须是 options 中对象的其中一个 id 值")) def _validate_multi_enum_default(self, default: List[int], options: List[Dict]): if not isinstance(default, List): raise TypeError("多选枚举类型自定义字段的 default 值需要传递列表类型") - # 多选枚举类型要求default中的值都为options其中任一对象的ID值 - if default is not None and not set(default).issubset({option["id"] for option in options}): + # 多选枚举类型要求 default 中的值都为 options 其中任一对象的 ID 值 + if not (default or set(default).issubset({opt["id"] for opt in options})): raise serializers.ValidationError(_("默认值必须属于 options 中对象的 id 值"))