From e24f21167429d7742eea54b5857077d6e33d967e Mon Sep 17 00:00:00 2001 From: CaptainB Date: Thu, 15 May 2025 11:02:41 +0800 Subject: [PATCH] feat: add optional user_id parameter to tool queries and serializers --- apps/knowledge/serializers/knowledge_folder.py | 2 -- apps/tools/api/tool.py | 7 +++++++ apps/tools/serializers/tool.py | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/knowledge/serializers/knowledge_folder.py b/apps/knowledge/serializers/knowledge_folder.py index cd91710da..32b7afcef 100644 --- a/apps/knowledge/serializers/knowledge_folder.py +++ b/apps/knowledge/serializers/knowledge_folder.py @@ -15,8 +15,6 @@ class KnowledgeFolderTreeSerializer(serializers.ModelSerializer): class KnowledgeFolderFlatSerializer(serializers.ModelSerializer): - children = serializers.SerializerMethodField() - class Meta: model = KnowledgeFolder fields = ['id', 'name', 'desc', 'user_id', 'workspace_id', 'parent_id'] diff --git a/apps/tools/api/tool.py b/apps/tools/api/tool.py index 3ffcb9983..79b1425cf 100644 --- a/apps/tools/api/tool.py +++ b/apps/tools/api/tool.py @@ -194,6 +194,13 @@ class ToolPageAPI(ToolReadAPI): location='query', required=True, ), + OpenApiParameter( + name="user_id", + description="创建者id", + type=OpenApiTypes.STR, + location='query', + required=False, + ), OpenApiParameter( name="tool_type", description="工具类型", diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py index 3e83b4139..9ce56de0a 100644 --- a/apps/tools/serializers/tool.py +++ b/apps/tools/serializers/tool.py @@ -392,6 +392,7 @@ class ToolTreeSerializer(serializers.Serializer): workspace_id = serializers.CharField(required=True, label=_('workspace id')) folder_id = serializers.CharField(required=True, label=_('folder id')) name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('tool name')) + user_id = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('user id')) tool_type = serializers.CharField(required=True, label=_('tool type')) def page_tool(self, current_page: int, page_size: int): @@ -408,10 +409,12 @@ class ToolTreeSerializer(serializers.Serializer): tools = QuerySet(Tool).filter(Q(workspace_id=self.data.get('workspace_id')) & Q(folder_id__in=all_folders) & Q(tool_type=self.data.get('tool_type')) & + Q(user_id=self.data.get('user_id')) & Q(name__contains=self.data.get('name'))) else: tools = QuerySet(Tool).filter(Q(workspace_id=self.data.get('workspace_id')) & Q(folder_id__in=all_folders) & + Q(user_id=self.data.get('user_id')) & Q(tool_type=self.data.get('tool_type'))) return page_search(current_page, page_size, tools, lambda record: ToolModelSerializer(record).data)