mypertamina-microsite-api/microsite_api/user_profile/serializers.py
2026-02-26 11:06:14 +07:00

72 lines
1.7 KiB
Python

from django.contrib.auth import get_user_model
from rest_framework import serializers
User = get_user_model()
from django.contrib.auth import get_user_model
from rest_framework import serializers
User = get_user_model()
class UserCreateSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id',
'username',
'email',
'password',
'first_name',
'last_name',
]
extra_kwargs = {
'password': {'write_only': True}
}
def create(self, validated_data):
password = validated_data.pop('password')
user = User(**validated_data)
user.set_password(password)
user.is_staff = True
user.save()
return user
class UserRetrieveSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id',
'username',
'email',
'first_name',
'last_name',
'is_active',
'is_staff',
'is_superuser',
'date_joined',
'last_login',
]
read_only_fields = fields
class UserUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id',
'username',
'email',
'first_name',
'last_name',
]
class UserUpdatePasswordSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id',
'password',
]
extra_kwargs = {
'password': {'write_only': True}
}