72 lines
1.7 KiB
Python
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}
|
|
} |