Просмотр исходного кода

fix: api error of get all workspaces (#15880)

csurong 1 месяц назад
Родитель
Сommit
c3774bef7e
1 измененных файлов с 7 добавлено и 15 удалено
  1. 7 15
      api/controllers/console/workspace/workspace.py

+ 7 - 15
api/controllers/console/workspace/workspace.py

@@ -88,28 +88,20 @@ class WorkspaceListApi(Resource):
         parser.add_argument("limit", type=inputs.int_range(1, 100), required=False, default=20, location="args")
         args = parser.parse_args()
 
-        tenants = Tenant.query.order_by(Tenant.created_at.desc()).paginate(page=args["page"], per_page=args["limit"])
-
+        tenants = Tenant.query.order_by(Tenant.created_at.desc()).paginate(
+            page=args["page"], per_page=args["limit"], error_out=False
+        )
         has_more = False
-        if len(tenants.items) == args["limit"]:
-            current_page_first_tenant = tenants[-1]
-            rest_count = (
-                db.session.query(Tenant)
-                .filter(
-                    Tenant.created_at < current_page_first_tenant.created_at, Tenant.id != current_page_first_tenant.id
-                )
-                .count()
-            )
 
-            if rest_count > 0:
-                has_more = True
-        total = db.session.query(Tenant).count()
+        if tenants.has_next:
+            has_more = True
+
         return {
             "data": marshal(tenants.items, workspace_fields),
             "has_more": has_more,
             "limit": args["limit"],
             "page": args["page"],
-            "total": total,
+            "total": tenants.total,
         }, 200