From e6e52c24571dee7acf5627306bedeb41a9b8ae93 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Thu, 7 Aug 2025 11:18:10 +0500 Subject: [PATCH] fix user list serializer --- core/apps/accounts/serializers/user.py | 12 ++++++++++-- core/apps/accounts/views/user.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/apps/accounts/serializers/user.py b/core/apps/accounts/serializers/user.py index 9afdc18..5bc3536 100644 --- a/core/apps/accounts/serializers/user.py +++ b/core/apps/accounts/serializers/user.py @@ -66,10 +66,18 @@ class UserCreateSerializer(serializers.Serializer): class UserListSerializer(serializers.ModelSerializer): - role = serializers.CharField(source='role.name') + role = serializers.SerializerMethodField(method_name='get_role') class Meta: model = User fields = [ 'id', 'full_name', 'profile_image', 'phone_number', 'role', 'username', 'is_blocked' - ] \ No newline at end of file + ] + + def get_role(self, obj): + if obj.role: + return { + 'id': obj.role.id, + 'role': obj.role.name, + } + return None \ No newline at end of file diff --git a/core/apps/accounts/views/user.py b/core/apps/accounts/views/user.py index 923cfa0..bc95603 100644 --- a/core/apps/accounts/views/user.py +++ b/core/apps/accounts/views/user.py @@ -77,7 +77,7 @@ class UserCreateApiView(generics.GenericAPIView): class UserListApiView(generics.ListAPIView): serializer_class = serializers.UserListSerializer - queryset = User.objects.select_related('role') + queryset = User.objects.c('role') permission_classes = [HasRolePermission] required_permissions = ['settings', 'user'] pagination_class = CustomPageNumberPagination