from rest_framework import serializers from django.contrib.auth import get_user_model User = get_user_model() class UserSerializer(serializers.ModelSerializer): name = serializers.SerializerMethodField() role = serializers.SerializerMethodField() partner = serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = User fields = ['id', 'email', 'username', 'name', 'role', 'partner'] def get_name(self, obj): return f"{obj.first_name} {obj.last_name}".strip() or obj.username def get_role(self, obj): if obj.is_superuser: return 'superadmin' if obj.is_staff: return 'admin' return getattr(obj, 'role', 'user')