Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # simple class with no models mappings
- class LayerAuthSerializer(serializers.Serializer):
- nonce = serializers.CharField()
- display_name = serializers.CharField(required=False)
- avatar_url=serializers.CharField(required=False)
- # a complex class definition
- class CreateUserSerializer(serializers.Serializer):
- """
- Serializer for create user request
- """
- email = serializers.CharField(required=True)
- password = serializers.CharField(required=True)
- gravatar_url = serializers.CharField(required=False)
- def create(self, validated_data):
- # if user has used this number previously to authenticate,
- # then change validation code and and set number as validated = false
- user = User.objects.create_user(email=validated_data['email'], password=validated_data['password'])
- # we detect if user has a profile picture from gravatar
- gravatar_url = validated_data.pop('gravatar_url', None)
- if gravatar_url is not None:
- photo = download_gravatar(gravatar_url)
- user.profile_avatar = photo
- user.save()
- return user
- def to_internal_value(self, data):
- super(CreateUserSerializer, self).to_internal_value(data)
- if not data.get('password'):
- raise serializers.ValidationError({
- 'error': 'Password is required',
- 'code' : exception_handler.ERROR_DATA_INCONSISTENCY
- })
- email = data.get('email')
- if not email:
- raise serializers.ValidationError({
- 'error': 'Email is required',
- 'code' : exception_handler.ERROR_DATA_INCONSISTENCY
- })
- return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement