45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
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 |