from django.contrib.auth import get_user_model from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): avatar = serializers.SerializerMethodField(method_name='get_avatar') class Meta: exclude = [ "created_at", "updated_at", "password", "groups", "user_permissions", ] model = get_user_model() def get_avatar(self, obj): request = self.context.get('request') if obj.avatar: return request.build_absolute_uri(obj.avatar.url) return None class UserUpdateSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() fields = [ "first_name", "last_name", "avatar" ] class AdminUserSerializer(serializers.ModelSerializer): avatar = serializers.SerializerMethodField(method_name='get_avatar') class Meta: model = get_user_model() fields = "__all__" def get_avatar(self, obj): request = self.context.get('request') if obj.avatar: return request.build_absolute_uri(obj.avatar.url) return None class UserCreateSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() fields = [ "phone", "first_name", "last_name", "password", "role" ] class ShortUserSerializer(serializers.ModelSerializer): class Meta: model = get_user_model() fields = [ 'id', 'first_name', 'last_name', 'avatar', ] def get_avatar(self, obj): request = self.context.get('request') if obj.avatar: return request.build_absolute_uri(obj.avatar.url) return None