Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserSerializer(serializers.ModelSerializer):
- confirm_password = serializers.CharField(max_length=50, required=True, validators=[password_check], write_only=True)
- password = serializers.CharField(max_length=50, required=True, validators=[password_check])
- Id = serializers.CharField(max_length=100, required=False, allow_blank=True)
- user_type = serializers.CharField(max_length=30, required=True, write_only=True)
- email = serializers.EmailField(required=True)
- def validate_username(self, username):
- if User.objects.filter(username=username):
- raise serializers.ValidationError('Username already chosen!')
- if len(username) < 8:
- raise serializers.ValidationError('Username min length is 8')
- return username
- def validate_email(self, email):
- try:
- validate_email(email)
- except ValidationError:
- raise serializers.ValidationError('Enter a valid email')
- if User.objects.filter(email=email):
- raise serializers.ValidationError('Email already chosen!')
- return email
- def validate(self, attrs):
- key = 0
- try:
- if models.Profile.objects.filter(userid=attrs['Id']).exists() and attrs['Id'] != '':
- raise serializers.ValidationError('UserId already chosen')
- if attrs['Id'] == '':
- key=1
- except KeyError:
- key=1
- if key == 1:
- if attrs['user_type'] != 'Admin' and attrs['user_type'] != 'AdminCoordinate':
- raise serializers.ValidationError("UserId can't be empty!")
- else:
- attrs['user_id'] = ''
- if attrs['password'] != attrs['confirm_password']:
- raise serializers.ValidationError('Enter same passwords both the times!')
- return attrs
- class Meta:
- model = User
- fields = ('pk', 'username', 'password', 'email', 'confirm_password', 'Id', 'user_type')
- read_only_fields = ('pk',)
Add Comment
Please, Sign In to add comment