Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserCreateSerializer(ModelSerializer):
- password = CharField(write_only=True)
- password_2 = CharField(write_only=True)
- phone = CharField(required=True)
- email = CharField(required=False)
- class Meta:
- model = User
- fields = [
- 'phone',
- 'email',
- 'password',
- 'password_2',
- 'first_name'
- ]
- def validate(self, value):
- data = self.get_initial()
- user = User.objects.filter(username=data.get('phone'))
- if user.exists():
- raise ValidationError('Пользователь с данным телефоном уже зарегестрирован')
- return value
- def validate_password(self, value):
- data = self.get_initial()
- password = data.get('password')
- password2 = data.get('password_2')
- if password != password2:
- raise ValidationError('Пароли должны совпадать!')
- return value
- def create(self, validated_data):
- phone = validated_data['phone']
- email = validated_data.get('email', '')
- password = validated_data['password']
- name = validated_data.get('first_name','')
- request = self.context.get('request')
- user = None
- if request and hasattr(request, 'user'):
- user = request.user
- user.username = phone
- user.email = email
- user.first_name = name
- user.set_password(password)
- user.save()
- login(request, user)
- return validated_data
- class UserLoginSerializer(ModelSerializer):
- phone = CharField()
- password = CharField(write_only=True)
- class Meta:
- model = User
- fields = [
- 'phone',
- 'password',
- ]
- class UserSerializer(ModelSerializer):
- is_anon = serializers.SerializerMethodField()
- def get_is_anon(self, obj):
- if 'anon' in obj.username:
- return True
- else:
- return False
- class Meta:
- model = User
- fields = ('id', 'username', 'last_login', 'first_name', 'last_name', 'email', 'date_joined', 'is_anon')
- class UserInfoUpdateSerializer(ModelSerializer):
- username = CharField(required=False)
- partial = True
- def validate_username(self, username):
- if not username:
- return username
- if User.objects.filter(username=username).exists():
- raise ValidationError('Такой телефон уже есть')
- return username
- class Meta:
- model = User
- fields = [
- 'first_name',
- 'last_name',
- 'email',
- 'username',
- ]
- class ChangePasswordSerializer(serializers.Serializer):
- old_password = serializers.CharField(required=True)
- new_password = serializers.CharField(required=True)
- new_password_2 = serializers.CharField(required=True)
- class SMSRequestSerializer(serializers.Serializer):
- phone = serializers.CharField(max_length=200)
- def post(self, validated_data):
- phone = validated_data.get('phone', '')
- return phone
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement