From 1b6b021226c0f4b753ddc59ccd2b8101fe7eaeef Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 26 Mar 2025 10:38:55 +0800 Subject: [PATCH] fix: set is_active to False and update init_params handling in function_lib_serializer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1053923 --user=刘瑞斌 【函数库】创建函数后函数状态为启用,并非是禁用 https://www.tapd.cn/57709429/s/1676263 --bug=1053928 --user=刘瑞斌 【函数库】设置过启动参数的函数,删除启动参数,但实际依然有保留 https://www.tapd.cn/57709429/s/1676269 --- .../serializers/function_lib_serializer.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/function_lib/serializers/function_lib_serializer.py b/apps/function_lib/serializers/function_lib_serializer.py index c8b715b75..ba20417b1 100644 --- a/apps/function_lib/serializers/function_lib_serializer.py +++ b/apps/function_lib/serializers/function_lib_serializer.py @@ -199,7 +199,7 @@ class FunctionLibSerializer(serializers.Serializer): input_field_list=instance.get('input_field_list'), init_field_list=instance.get('init_field_list'), permission_type=instance.get('permission_type'), - is_active=instance.get('is_active', True)) + is_active=False) function_lib.save() return FunctionLibModelSerializer(function_lib).data @@ -289,12 +289,18 @@ class FunctionLibSerializer(serializers.Serializer): function_lib = QuerySet(FunctionLib).filter(id=self.data.get('id')).first() if 'init_params' in edit_dict: + if edit_dict['init_field_list'] is not None: + rm_key = [] + for key in edit_dict['init_params']: + if key not in [field['field'] for field in edit_dict['init_field_list']]: + rm_key.append(key) + for key in rm_key: + edit_dict['init_params'].pop(key) if function_lib.init_params: old_init_params = json.loads(rsa_long_decrypt(function_lib.init_params)) for key in edit_dict['init_params']: if key in old_init_params and edit_dict['init_params'][key] == encryption(old_init_params[key]): edit_dict['init_params'][key] = old_init_params[key] - edit_dict['init_params'] = rsa_long_encrypt(json.dumps(edit_dict['init_params'])) QuerySet(FunctionLib).filter(id=self.data.get('id')).update(**edit_dict) return self.one(False)