feat: add ToolFolderFlatSerializer for flat folder serialization in Tool API
This commit is contained in:
parent
4e77ebcc91
commit
1448927f4e
@ -18,7 +18,7 @@ from common.result import result
|
|||||||
from common.utils.tool_code import ToolExecutor
|
from common.utils.tool_code import ToolExecutor
|
||||||
from maxkb.const import CONFIG
|
from maxkb.const import CONFIG
|
||||||
from tools.models import Tool, ToolScope, ToolFolder
|
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'))
|
tool_executor = ToolExecutor(CONFIG.get('SANDBOX'))
|
||||||
|
|
||||||
@ -333,7 +333,7 @@ class ToolTreeSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
# 获取当前文件夹下的直接子文件夹
|
# 获取当前文件夹下的直接子文件夹
|
||||||
child_folders = ToolFolder.objects.filter(parent=current_folder)
|
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')) &
|
tools = QuerySet(Tool).filter(Q(workspace_id=self.data.get('workspace_id')) &
|
||||||
|
|||||||
@ -14,3 +14,11 @@ class ToolFolderTreeSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
def get_children(self, obj):
|
def get_children(self, obj):
|
||||||
return ToolFolderTreeSerializer(obj.get_children(), many=True).data
|
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']
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user