diff --git a/dvadmin-backend/apps/vadmin/permission/permissions.py b/dvadmin-backend/apps/vadmin/permission/permissions.py index 3c09387..3c4f374 100644 --- a/dvadmin-backend/apps/vadmin/permission/permissions.py +++ b/dvadmin-backend/apps/vadmin/permission/permissions.py @@ -10,6 +10,7 @@ from rest_framework.permissions import (BasePermission, from rest_framework.request import Request from rest_framework.views import APIView +from .models import Dept from ..utils.model_util import get_dept logger = logging.getLogger(__name__) @@ -105,9 +106,12 @@ class DeptDestroyPermission(CustomPermission): return True def check_queryset(self, request, instance): - if instance.values_list('userprofile', flat=True): + if list(filter(None, instance.values_list('userprofile', flat=True))): self.message = "该部门下有关联用户,无法删除!" return False + if Dept.objects.filter(parentId__in=instance).count() > 0: + self.message = "该部门下有下级部门,请先删除下级部门!" + return False return True def has_object_permission(self, request: Request, view: APIView, instance):