perf: 修改写法

pull/7880/head
ibuler 2022-03-16 16:31:06 +08:00 committed by Jiangjie.Bai
parent f41e6db007
commit ee757e261d
1 changed files with 10 additions and 12 deletions

View File

@ -8,7 +8,10 @@ from common.exceptions import JMSException
from .. import serializers from .. import serializers
from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding
__all__ = ['RoleBindingViewSet', 'SystemRoleBindingViewSet', 'OrgRoleBindingViewSet'] __all__ = [
'RoleBindingViewSet', 'SystemRoleBindingViewSet',
'OrgRoleBindingViewSet'
]
class RoleBindingViewSet(OrgBulkModelViewSet): class RoleBindingViewSet(OrgBulkModelViewSet):
@ -22,9 +25,8 @@ class RoleBindingViewSet(OrgBulkModelViewSet):
'user__name', 'user__username', 'role__name' 'user__name', 'user__username', 'role__name'
] ]
@staticmethod def get_queryset(self):
def annotate_queryset(queryset): queryset = self._get_queryset()\
queryset = queryset \
.prefetch_related('user', 'role', 'org') \ .prefetch_related('user', 'role', 'org') \
.annotate( .annotate(
user_display=Concat( user_display=Concat(
@ -35,10 +37,8 @@ class RoleBindingViewSet(OrgBulkModelViewSet):
) )
return queryset return queryset
def get_queryset(self): def _get_queryset(self):
queryset = super().get_queryset() return super().get_queryset()
queryset = self.annotate_queryset(queryset)
return queryset
class SystemRoleBindingViewSet(RoleBindingViewSet): class SystemRoleBindingViewSet(RoleBindingViewSet):
@ -57,10 +57,8 @@ class SystemRoleBindingViewSet(RoleBindingViewSet):
class OrgRoleBindingViewSet(RoleBindingViewSet): class OrgRoleBindingViewSet(RoleBindingViewSet):
serializer_class = serializers.OrgRoleBindingSerializer serializer_class = serializers.OrgRoleBindingSerializer
def get_queryset(self): def _get_queryset(self):
queryset = OrgRoleBinding.objects.root_all() return OrgRoleBinding.objects.root_all()
queryset = self.annotate_queryset(queryset)
return queryset
def perform_bulk_create(self, serializer): def perform_bulk_create(self, serializer):
validated_data = serializer.validated_data validated_data = serializer.validated_data