Advertisement
Guest User

Untitled

a guest
Oct 7th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. class AccountSerializer(serializers.ModelSerializer):
  2.     """
  3.        Account Serializer
  4.    """
  5.  
  6.     class Meta:
  7.         model = models.Account
  8.         fields = (
  9.             'id', 'email', 'name', 'birthdate', 'phone_number', 'gender',
  10.             'facebook', 'twitter', 'instagram', 'avatar', 'has_usable_password',
  11.             'has_confirmed_terms', 'created_at', 'updated_at'
  12.         )
  13.         read_only_fields = ('created_at', 'updated_at')
  14.         extra_kwargs = {'has_confirmed_terms': {'write_only': True}}
  15.  
  16.     def create(self, validated_data):
  17.         password = self.context['request'].data.get('password')
  18.         if not password:
  19.             raise serializers.ValidationError({'password': [_('This field is required.')]})
  20.  
  21.         if not validated_data.get('has_confirmed_terms', False):
  22.             raise serializers.ValidationError({'has_confirmed_terms': [_('This field is required.')]})
  23.  
  24.         account = models.Account.objects.create_user(
  25.             password=password,
  26.             **validated_data
  27.         )
  28.         account.save()
  29.         campaign_new_user.delay(account.pk)
  30.         auth = authenticate(username=account.username, password=password)
  31.         login(self.context['request'], auth)
  32.         return account
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement