fix: model add workspace_id

This commit is contained in:
wxg0103 2025-06-20 10:40:51 +08:00
parent 4af876f6a8
commit d2ec6d558b
2 changed files with 21 additions and 12 deletions

View File

@ -107,12 +107,15 @@ class ModelSerializer(serializers.Serializer):
class Operate(serializers.Serializer): class Operate(serializers.Serializer):
id = serializers.UUIDField(required=True, label=_("model id")) id = serializers.UUIDField(required=True, label=_("model id"))
user_id = serializers.UUIDField(required=False, label=_("user id")) user_id = serializers.UUIDField(required=False, label=_("user id"))
workspace_id = serializers.CharField(required=False, label=_("workspace id"))
def is_valid(self, *, raise_exception=False): def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True) super().is_valid(raise_exception=True)
model = QuerySet(Model).filter( workspace_id = self.data.get("workspace_id")
id=self.data.get("id") model_query = QuerySet(Model).filter(id=self.data.get("id"))
).first() if workspace_id is not None:
model_query = model_query.filter(workspace_id=workspace_id)
model = model_query.first()
if model is None: if model is None:
raise AppApiException(500, _('Model does not exist')) raise AppApiException(500, _('Model does not exist'))
if model.workspace_id == 'None': if model.workspace_id == 'None':
@ -122,7 +125,7 @@ class ModelSerializer(serializers.Serializer):
if with_valid: if with_valid:
super().is_valid(raise_exception=True) super().is_valid(raise_exception=True)
model = QuerySet(Model).get( model = QuerySet(Model).get(
id=self.data.get('id') id=self.data.get('id'), workspace_id=self.data.get('workspace_id')
) )
return ModelSerializer.model_to_dict(model) return ModelSerializer.model_to_dict(model)
@ -130,13 +133,15 @@ class ModelSerializer(serializers.Serializer):
model = None model = None
if with_valid: if with_valid:
super().is_valid(raise_exception=True) super().is_valid(raise_exception=True)
model = QuerySet(Model).filter(id=self.data.get("id")).first() model = QuerySet(Model).filter(id=self.data.get("id"),
workspace_id=self.data.get('workspace_id')).first()
if model is None: if model is None:
raise AppApiException(500, _('Model does not exist')) raise AppApiException(500, _('Model does not exist'))
return {'id': str(model.id), 'provider': model.provider, 'name': model.name, 'model_type': model.model_type, return {'id': str(model.id), 'provider': model.provider, 'name': model.name, 'model_type': model.model_type,
'model_name': model.model_name, 'model_name': model.model_name,
'status': model.status, 'status': model.status,
'meta': model.meta 'meta': model.meta,
'workspace_id': model.workspace_id,
} }
def pause_download(self, with_valid=True): def pause_download(self, with_valid=True):

View File

@ -121,8 +121,9 @@ class ModelSetting(APIView):
) )
def put(self, request: Request, workspace_id, model_id: str): def put(self, request: Request, workspace_id, model_id: str):
return result.success( return result.success(
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).edit(request.data, ModelSerializer.Operate(
str(request.user.id))) data={'id': model_id, 'user_id': request.user.id, 'workspace_id': workspace_id}).edit(request.data,
str(request.user.id)))
@extend_schema(methods=['DELETE'], @extend_schema(methods=['DELETE'],
summary=_('Delete model'), summary=_('Delete model'),
@ -138,7 +139,8 @@ class ModelSetting(APIView):
) )
def delete(self, request: Request, workspace_id: str, model_id: str): def delete(self, request: Request, workspace_id: str, model_id: str):
return result.success( return result.success(
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).delete()) ModelSerializer.Operate(
data={'id': model_id, 'user_id': request.user.id, 'workspace_id': workspace_id}).delete())
@extend_schema(methods=['GET'], @extend_schema(methods=['GET'],
summary=_('Query model details'), summary=_('Query model details'),
@ -151,7 +153,9 @@ class ModelSetting(APIView):
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()) RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
def get(self, request: Request, workspace_id: str, model_id: str): def get(self, request: Request, workspace_id: str, model_id: str):
return result.success( return result.success(
ModelSerializer.Operate(data={'id': model_id, 'user_id': request.user.id}).one(with_valid=True)) ModelSerializer.Operate(
data={'id': model_id, 'user_id': request.user.id, 'workspace_id': workspace_id}).one(
with_valid=True))
class ModelParamsForm(APIView): class ModelParamsForm(APIView):
authentication_classes = [TokenAuth] authentication_classes = [TokenAuth]
@ -203,7 +207,7 @@ class ModelSetting(APIView):
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()) RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
def get(self, request: Request, workspace_id: str, model_id: str): def get(self, request: Request, workspace_id: str, model_id: str):
return result.success( return result.success(
ModelSerializer.Operate(data={'id': model_id}).one_meta(with_valid=True)) ModelSerializer.Operate(data={'id': model_id, 'workspace_id': workspace_id}).one_meta(with_valid=True))
class PauseDownload(APIView): class PauseDownload(APIView):
authentication_classes = [TokenAuth] authentication_classes = [TokenAuth]
@ -220,7 +224,7 @@ class ModelSetting(APIView):
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()) RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
def put(self, request: Request, workspace_id: str, model_id: str): def put(self, request: Request, workspace_id: str, model_id: str):
return result.success( return result.success(
ModelSerializer.Operate(data={'id': model_id}).pause_download()) ModelSerializer.Operate(data={'id': model_id, 'workspace_id': workspace_id}).pause_download())
class SharedModel(APIView): class SharedModel(APIView):