From 4eda4a0d1bdf0aca0770f24e9c90c24db8ffff11 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 9 Jul 2025 10:58:56 +0800 Subject: [PATCH] feat: add scope parameter to ToolTreeSerializer and update get_tools method --- apps/tools/serializers/tool.py | 8 ++++++-- apps/tools/views/tool.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py index 02d9aaf30..f2901a8cb 100644 --- a/apps/tools/serializers/tool.py +++ b/apps/tools/serializers/tool.py @@ -538,6 +538,7 @@ class ToolSerializer(serializers.Serializer): class ToolTreeSerializer(serializers.Serializer): workspace_id = serializers.CharField(required=True, label=_('workspace id')) + scope = serializers.CharField(required=True, label=_('scope')) def get_tools(self, folder_id): self.is_valid(raise_exception=True) @@ -553,8 +554,11 @@ class ToolTreeSerializer(serializers.Serializer): folders_data = ToolFolderFlatSerializer(child_folders, many=True).data # 获取当前文件夹下的工具 - tools = QuerySet(Tool).filter(Q(workspace_id=self.data.get('workspace_id')) & - Q(folder_id=folder_id)) + tools = QuerySet(Tool).filter( + Q(workspace_id=self.data.get('workspace_id')) & + Q(scope=self.data.get('scope')) & + Q(folder_id=folder_id) + ) tools_data = ToolModelSerializer(tools, many=True).data # 返回包含文件夹和工具的结构 diff --git a/apps/tools/views/tool.py b/apps/tools/views/tool.py index c90db54fb..ee0406675 100644 --- a/apps/tools/views/tool.py +++ b/apps/tools/views/tool.py @@ -68,7 +68,7 @@ class ToolView(APIView): ) def get(self, request: Request, workspace_id: str): return result.success(ToolTreeSerializer( - data={'workspace_id': workspace_id} + data={'workspace_id': workspace_id, 'scope': ToolScope.WORKSPACE, 'user_id': request.user.id} ).get_tools(request.query_params.get('folder_id'))) class Debug(APIView):