From bc89b793bc48eabf1cd95341594ea4bb6fdcfaac Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Fri, 3 Jul 2026 17:23:14 +0800 Subject: [PATCH] fix: include workspace_id in model parameters for get and save methods --- .../serializers/model_serializer.py | 25 +++++++++++++------ apps/models_provider/views/model.py | 8 ++++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/apps/models_provider/serializers/model_serializer.py b/apps/models_provider/serializers/model_serializer.py index 0c158b2250b..02b73542913 100644 --- a/apps/models_provider/serializers/model_serializer.py +++ b/apps/models_provider/serializers/model_serializer.py @@ -479,27 +479,38 @@ def page(self, current_page, page_size): class ModelParams(serializers.Serializer): id = serializers.UUIDField(required=True, label=_("model id")) + workspace_id = serializers.UUIDField(required=False, label=_("workspace id")) def is_valid(self, *, raise_exception=False): super().is_valid(raise_exception=True) - model = QuerySet(Model).filter(id=self.data.get("id")).first() + + validated_data = self.validated_data + model = ( + QuerySet(Model) + .filter( + id=validated_data.get("id"), + workspace_id=validated_data.get("workspace_id"), + ) + .first() + ) + if model is None: raise AppApiException(500, _("Model does not exist")) + return model + def get_model_params(self, with_valid=True): + model = None if with_valid: - self.is_valid(raise_exception=True) - model_id = self.data.get("id") - model = QuerySet(Model).filter(id=model_id).first() + model = self.is_valid(raise_exception=True) return model.model_params_form def save_model_params_form(self, model_params_form, with_valid=True): + model = None if with_valid: - self.is_valid(raise_exception=True) + model = self.is_valid(raise_exception=True) if model_params_form is None: model_params_form = [] - model_id = self.data.get("id") - model = QuerySet(Model).filter(id=model_id).first() if not isinstance(model_params_form, list): raise AppApiException(500, _("model_params_form must be a list")) # 还需要校验几个字段:label required default_value diff --git a/apps/models_provider/views/model.py b/apps/models_provider/views/model.py index a2c60796f6c..fd0171a2063 100644 --- a/apps/models_provider/views/model.py +++ b/apps/models_provider/views/model.py @@ -230,7 +230,9 @@ class ModelParamsForm(APIView): RoleConstants.USER.get_workspace_role(), ) def get(self, request: Request, workspace_id: str, model_id: str): - return result.success(ModelSerializer.ModelParams(data={"id": model_id}).get_model_params()) + return result.success( + ModelSerializer.ModelParams(data={"id": model_id, "workspace_id": workspace_id}).get_model_params() + ) @extend_schema( methods=["PUT"], @@ -260,7 +262,9 @@ def get(self, request: Request, workspace_id: str, model_id: str): ) def put(self, request: Request, workspace_id: str, model_id: str): return result.success( - ModelSerializer.ModelParams(data={"id": model_id}).save_model_params_form(request.data) + ModelSerializer.ModelParams(data={"id": model_id, "workspace_id": workspace_id}).save_model_params_form( + request.data + ) ) class ModelMeta(APIView):