From 29a1e5893c452a8b3fbb15348b0dee59cf3f014a Mon Sep 17 00:00:00 2001 From: raja <1647193241@qq.com> Date: Thu, 26 Dec 2024 17:32:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=84=E5=88=99=E5=AE=A1=E8=AE=A1-?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E7=AE=A1=E7=90=86-=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20--story=3D121324647?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 获取联表列表修改 tags 参数校验逻辑 --- src/backend/pdm.lock | 8 ++++---- src/backend/pyproject.toml | 2 +- src/backend/requirements.txt | 2 +- src/backend/services/web/strategy_v2/serializers.py | 12 ++++++++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/backend/pdm.lock b/src/backend/pdm.lock index 77aed93d..49c7a873 100644 --- a/src/backend/pdm.lock +++ b/src/backend/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "dev"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:47940e91b7236bc560424931e9e368991e7988725e073627abbfabff44b1da0b" +content_hash = "sha256:decda07956ec4f9b97d8bfe4a0401f31ed81d0568d8c1aa2e2aa5c5bfa9b8043" [[metadata.targets]] requires_python = "==3.10.*" @@ -40,12 +40,12 @@ files = [ [[package]] name = "apigw-manager" -version = "1.1.5" +version = "2.0.0" requires_python = ">=3.6.1,<4.0.0" summary = "" groups = ["default"] dependencies = [ - "bkapi-bk-apigateway<2.0.0,>=1.0.6", + "bkapi-bk-apigateway<2.0.0,>=1.0.11", "bkapi-client-core>=1.1.3", "future==0.18.2", "packaging>=21.0", @@ -54,7 +54,7 @@ dependencies = [ "urllib3>=1.25.3", ] files = [ - {file = "apigw_manager-1.1.5-py3-none-any.whl", hash = "sha256:694ef800ace5344d0b2b5a88dbcd51c143fd3597066cab508b3141cc2f3449d2"}, + {file = "apigw_manager-2.0.0-py3-none-any.whl", hash = "sha256:fdfd899a5935dbd66ef489ebbcd5ec53c61d926a118e081d4d19621f495ce664"}, ] [[package]] diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml index 4feaf951..c3896415 100644 --- a/src/backend/pyproject.toml +++ b/src/backend/pyproject.toml @@ -73,7 +73,7 @@ dependencies = [ "opentelemetry-instrumentation-logging==0.41b0", "django-prometheus==2.2.0", "numpy==1.24.2", - "apigw-manager==1.1.5", + "apigw-manager==2.0.0", "openpyxl==3.1.2", "elasticsearch==7.17.9", "pypinyin==0.49.0", diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index e87942f6..11a1485c 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -1,7 +1,7 @@ # This file is @generated by PDM. # Please do not edit it manually. -apigw-manager==1.1.5 +apigw-manager==2.0.0 arrow==1.2.2 bk-audit[opentelemetry]==1.2.2b0 bk-crypto-python-sdk==1.1.1 diff --git a/src/backend/services/web/strategy_v2/serializers.py b/src/backend/services/web/strategy_v2/serializers.py index e2e0c130..ada50315 100644 --- a/src/backend/services/web/strategy_v2/serializers.py +++ b/src/backend/services/web/strategy_v2/serializers.py @@ -665,7 +665,14 @@ class Meta: ] -class ListLinkTableRequestSerializer(OrderSerializer): +class TagsReqSerializer(serializers.Serializer): + tags = serializers.CharField(label=gettext_lazy("Tags"), required=False, help_text=gettext_lazy("逗号分隔的标签ID列表")) + + def validate_tags(self, tags: str) -> List[int]: + return [int(tag) for tag in tags.split(",") if tag] if tags else [] + + +class ListLinkTableRequestSerializer(OrderSerializer, TagsReqSerializer): order_field = serializers.ChoiceField( label=gettext_lazy("排序字段"), required=False, @@ -678,9 +685,6 @@ class ListLinkTableRequestSerializer(OrderSerializer): name__contains = serializers.CharField(label=gettext_lazy("Link Table Name"), required=False) updated_by = serializers.CharField(label=gettext_lazy("Updated By"), required=False) no_tag = serializers.BooleanField(label=gettext_lazy("No Tag"), default=False) - tags = serializers.ListField( - label=gettext_lazy("Tags"), child=serializers.IntegerField(label=gettext_lazy("Tag ID")), required=False - ) uid = serializers.CharField(label=gettext_lazy("Link Table UID"), required=False)