Skip to content

Commit 32111f6

Browse files
committed
fix: improve module tree query to use Q object for filtering by workspace_id
1 parent 8f0dd16 commit 32111f6

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

apps/modules/api/module.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,12 @@ def get_parameters():
105105
enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
106106
location='path',
107107
required=True,
108-
)
108+
),
109+
OpenApiParameter(
110+
name="name",
111+
description="名称",
112+
type=OpenApiTypes.STR,
113+
location='query',
114+
required=False,
115+
),
109116
]

apps/modules/serializers/module.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,13 @@ class ModuleTreeSerializer(serializers.Serializer):
9595
workspace_id = serializers.CharField(required=True, allow_null=True, allow_blank=True, label=_('workspace id'))
9696
source = serializers.CharField(required=True, label=_('source'))
9797

98-
def get_module_tree(self):
98+
def get_module_tree(self, name=None):
9999
self.is_valid(raise_exception=True)
100100
Module = get_module_type(self.data.get('source'))
101-
nodes = Module.objects.filter(Q(workspace_id=self.data.get('workspace_id'))).get_cached_trees()
101+
if name is not None:
102+
nodes = Module.objects.filter(Q(workspace_id=self.data.get('workspace_id')) &
103+
Q(name__contains=name)).get_cached_trees()
104+
else:
105+
nodes = Module.objects.filter(Q(workspace_id=self.data.get('workspace_id'))).get_cached_trees()
102106
serializer = ToolModuleTreeSerializer(nodes, many=True)
103107
return serializer.data # 这是可序列化的字典

apps/modules/views/module.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,4 @@ class ModuleTreeView(APIView):
8888
def get(self, request: Request, workspace_id: str, source: str):
8989
return result.success(ModuleTreeSerializer(
9090
data={'workspace_id': workspace_id, 'source': source}
91-
).get_module_tree())
91+
).get_module_tree(request.query_params.get('name')))

0 commit comments

Comments
 (0)