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)