perf: 统一用户名称的label显示

pull/11138/head
fangfang.dong 2023-07-31 18:06:23 +08:00 committed by Bryan
parent f9c9c9d525
commit b93b64255b
2 changed files with 9 additions and 12 deletions

View File

@ -27,14 +27,7 @@ class RoleBindingViewSet(OrgBulkModelViewSet):
def get_queryset(self): def get_queryset(self):
queryset = self._get_queryset() \ queryset = self._get_queryset() \
.prefetch_related('user', 'role', 'org') \ .prefetch_related('user', 'role', 'org')
.annotate(
user_display=Concat(
F('user__name'), Value('('),
F('user__username'), Value(')')
),
role_display=F('role__name')
)
return queryset return queryset
def _get_queryset(self): def _get_queryset(self):

View File

@ -1,6 +1,8 @@
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from rest_framework import serializers from rest_framework import serializers
from common.serializers.fields import ObjectRelatedField
from users.models import User
from orgs.serializers import CurrentOrgDefault from orgs.serializers import CurrentOrgDefault
from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding
@ -10,16 +12,18 @@ __all__ = [
class RoleBindingSerializer(serializers.ModelSerializer): class RoleBindingSerializer(serializers.ModelSerializer):
user = ObjectRelatedField(
required=False, queryset=User.objects,
label=_('User'), attrs=('id', 'name', 'username')
)
class Meta: class Meta:
model = RoleBinding model = RoleBinding
fields = [ fields = [
'id', 'user', 'user_display', 'role', 'role_display', 'id', 'user', 'role', 'scope', 'org', 'org_name',
'scope', 'org', 'org_name',
] ]
read_only_fields = ['scope'] read_only_fields = ['scope']
extra_kwargs = { extra_kwargs = {
'user_display': {'label': _('User display')},
'role_display': {'label': _('Role display')},
'org_name': {'label': _("Org name")} 'org_name': {'label': _("Org name")}
} }