Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserSerializer(serializers.ModelSerializer):
- email = serializers.EmailField(max_length=50, allow_blank=False, required=True)
- full_name = serializers.CharField(max_length=150, allow_blank=False, required=True)
- password = serializers.CharField(allow_blank=False, write_only=True, required=True)
- is_active = serializers.BooleanField(required=False)
- # category_tags = ??
- class Meta:
- model = User
- fields = ('id', 'email', 'full_name', 'is_active', 'is_online', 'joined', 'category_tags', 'password')
- write_only_fields = ('password',)
- read_only_fields = ('id', 'joined', 'is_online')
- validators = [
- UniqueTogetherValidator(
- queryset = User.objects.all(),
- fields = ('email',),
- message= "This email is already registered"
- )
- ]
- def create(self, validated_data):
- generated_password = get_random_string(length=8)
- user = User.objects.create(
- email = validated_data['email'],
- full_name = validated_data['full_name']
- )
- user.set_password(generated_password)
- user.save()
- return user
- def update(self, instance, validated_data):
- instance.email = validated_data.get('email', instance.email)
- instance.full_name = validated_data.get('full_name', instance.full_name)
- instance.is_active = validated_data.get('is_active', instance.is_active)
- if is_password_usable(validated_data.get('password', instance.password)) != True:
- instance.set_password(validated_data.get('password', instance.password))
- instance.save()
- return instance
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement