feat: add ToolFolderFlatSerializer for flat folder serialization in Tool API

This commit is contained in:
CaptainB 2025-05-07 10:25:15 +08:00
parent 4e77ebcc91
commit 1448927f4e
2 changed files with 10 additions and 2 deletions

View File

@ -18,7 +18,7 @@ from common.result import result
from common.utils.tool_code import ToolExecutor
from maxkb.const import CONFIG
from tools.models import Tool, ToolScope, ToolFolder
from tools.serializers.tool_folder import ToolFolderTreeSerializer
from tools.serializers.tool_folder import ToolFolderFlatSerializer
tool_executor = ToolExecutor(CONFIG.get('SANDBOX'))
@ -333,7 +333,7 @@ class ToolTreeSerializer(serializers.Serializer):
# 获取当前文件夹下的直接子文件夹
child_folders = ToolFolder.objects.filter(parent=current_folder)
folders_data = ToolFolderTreeSerializer(child_folders, many=True).data
folders_data = ToolFolderFlatSerializer(child_folders, many=True).data
# 获取当前文件夹下的工具
tools = QuerySet(Tool).filter(Q(workspace_id=self.data.get('workspace_id')) &

View File

@ -14,3 +14,11 @@ class ToolFolderTreeSerializer(serializers.ModelSerializer):
def get_children(self, obj):
return ToolFolderTreeSerializer(obj.get_children(), many=True).data
class ToolFolderFlatSerializer(serializers.ModelSerializer):
"""只序列化当前层的文件夹,不包含子节点"""
class Meta:
model = ToolFolder
fields = ['id', 'name', 'user_id', 'workspace_id', 'parent_id']