From 9d6451b95b075db1e7fcf14d1231cf7e8a402c1d Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Wed, 2 Apr 2025 20:10:20 +0800 Subject: [PATCH] fix: The interface for obtaining model metadata cannot access public models (#2787) --- apps/setting/serializers/provider_serializers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/setting/serializers/provider_serializers.py b/apps/setting/serializers/provider_serializers.py index 05f23cd7f..9f1690162 100644 --- a/apps/setting/serializers/provider_serializers.py +++ b/apps/setting/serializers/provider_serializers.py @@ -313,6 +313,7 @@ class ModelSerializer(serializers.Serializer): return ModelSerializer.model_to_dict(model) def one_meta(self, with_valid=False): + model = None if with_valid: super().is_valid(raise_exception=True) model = QuerySet(Model).filter(id=self.data.get("id")).first() @@ -320,7 +321,8 @@ class ModelSerializer(serializers.Serializer): raise AppApiException(500, _('Model does not exist')) if model.permission_type == 'PRIVATE' and str(model.user_id) != str(self.data.get("user_id")): raise Exception(_('No permission to use this model') + f"{model.name}") - model = QuerySet(Model).get(id=self.data.get('id')) + if model is None: + model = QuerySet(Model).get(id=self.data.get('id')) return {'id': str(model.id), 'provider': model.provider, 'name': model.name, 'model_type': model.model_type, 'model_name': model.model_name, 'status': model.status,