From 53e1b45d40ceaefef8a6f8d4fe98ec50573b8e01 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Mon, 21 Oct 2024 20:23:27 +0800 Subject: [PATCH] fix: remove .query reference of db.Model --- api/controllers/console/apikey.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/controllers/console/apikey.py b/api/controllers/console/apikey.py index 35ac42a14c..25930a140e 100644 --- a/api/controllers/console/apikey.py +++ b/api/controllers/console/apikey.py @@ -1,6 +1,8 @@ import flask_restful from flask_login import current_user from flask_restful import Resource, fields, marshal_with +from sqlalchemy import select +from sqlalchemy.orm import Session from werkzeug.exceptions import Forbidden from extensions.ext_database import db @@ -25,7 +27,13 @@ api_key_list = {"data": fields.List(fields.Nested(api_key_fields), attribute="it def _get_resource(resource_id, tenant_id, resource_model): - resource = resource_model.query.filter_by(id=resource_id, tenant_id=tenant_id).first() + if resource_model == App: + with Session(db.engine) as session: + resource = session.execute( + select(resource_model).filter_by(id=resource_id, tenant_id=tenant_id) + ).scalar_one_or_none() + else: + resource = resource_model.query.filter_by(id=resource_id, tenant_id=tenant_id).first() if resource is None: flask_restful.abort(404, message=f"{resource_model.__name__} not found.")