Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.contrib.auth import get_user_model
- from rest_framework import serializers
- class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model = get_user_model()
- fields = ['password', 'username', 'first_name', 'last_name', 'email']
- read_only_fields = ['is_staff', 'is_superuser']
- write_only_fields = ['password']
- class UserSerializer(serializers.ModelSerializer):
- # <Your other UserSerializer stuff here>
- def create(self, validated_data):
- password = validated_data.pop('password', None)
- instance = self.Meta.model(**validated_data)
- if password is not None:
- instance.set_password(password)
- instance.save()
- return instance
- def update(self, instance, validated_data):
- for attr, value in validated_data.items():
- if attr == 'password':
- instance.set_password(value)
- else:
- setattr(instance, attr, value)
- instance.save()
- return instance
- def create(self, validated_data):
- user = get_user_model(**validated_data)
- user.set_password(validated_data['password'])
- user.save()
- return user
- def update(self, instance, validated_data):
- for f in UserSerializer.Meta.fields + UserSerializer.Meta.write_only_fields:
- set_attr(instance, f, validated_data[f])
- instance.set_password(validated_data['password'])
- instance.save()
- return instance
Add Comment
Please, Sign In to add comment