From b93b64255b3876ed0272f47e4b0b7aad269ee6b0 Mon Sep 17 00:00:00 2001 From: "fangfang.dong" Date: Mon, 31 Jul 2023 18:06:23 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E7=BB=9F=E4=B8=80=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=9A=84label=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/rbac/api/rolebinding.py | 9 +-------- apps/rbac/serializers/rolebinding.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/apps/rbac/api/rolebinding.py b/apps/rbac/api/rolebinding.py index 4f3354e5b..bd33a7168 100644 --- a/apps/rbac/api/rolebinding.py +++ b/apps/rbac/api/rolebinding.py @@ -27,14 +27,7 @@ class RoleBindingViewSet(OrgBulkModelViewSet): def get_queryset(self): queryset = self._get_queryset() \ - .prefetch_related('user', 'role', 'org') \ - .annotate( - user_display=Concat( - F('user__name'), Value('('), - F('user__username'), Value(')') - ), - role_display=F('role__name') - ) + .prefetch_related('user', 'role', 'org') return queryset def _get_queryset(self): diff --git a/apps/rbac/serializers/rolebinding.py b/apps/rbac/serializers/rolebinding.py index 5e26cdf42..c5e64946d 100644 --- a/apps/rbac/serializers/rolebinding.py +++ b/apps/rbac/serializers/rolebinding.py @@ -1,6 +1,8 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +from common.serializers.fields import ObjectRelatedField +from users.models import User from orgs.serializers import CurrentOrgDefault from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding @@ -10,16 +12,18 @@ __all__ = [ class RoleBindingSerializer(serializers.ModelSerializer): + user = ObjectRelatedField( + required=False, queryset=User.objects, + label=_('User'), attrs=('id', 'name', 'username') + ) + class Meta: model = RoleBinding fields = [ - 'id', 'user', 'user_display', 'role', 'role_display', - 'scope', 'org', 'org_name', + 'id', 'user', 'role', 'scope', 'org', 'org_name', ] read_only_fields = ['scope'] extra_kwargs = { - 'user_display': {'label': _('User display')}, - 'role_display': {'label': _('Role display')}, 'org_name': {'label': _("Org name")} }