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} }