From 364abe1a3bfedd8d4da9b69c24be877739853125 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 7 Jun 2023 09:16:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20operation=20=E6=94=AF=E6=8C=81=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=88=A0=E9=99=A4=E7=AE=A1=E7=90=86=E5=91=98=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/opm/views.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/opm/views.py b/apps/opm/views.py index 6a3cbc32..33b07fc2 100644 --- a/apps/opm/views.py +++ b/apps/opm/views.py @@ -59,15 +59,18 @@ class OperationViewSet(CustomModelViewSet): raise ParseError('该作业不可修改') return super().update(request, *args, **kwargs) + @transaction.atomic def destroy(self, request, *args, **kwargs): obj = self.get_object() - if obj.state != Operation.OP_CREATE: - raise ParseError('非创建状态不可删除') - user = request.user - if user == obj.create_by or user.is_superuser: + if user.is_superuser: pass else: - raise ParseError('非创建人不可删除') + if obj.state != Operation.OP_CREATE: + raise ParseError('非创建状态不可删除') + user = request.user + if user != obj.create_by: + raise ParseError('非创建人不可删除') + Ticket.objects.filter(id__in=Opl.objects.filter(operation=obj).values_list('id', flat=True)).delete() # 删除可能的工单 obj.delete() return Response(status=204)