Как отправить проверочный код на электронную почту и проверить его в django rest framework
Подскажите пожалуйста как можно отправить проверочный код на email перед регистрацией пользователя используя django rest framework? идея заключается в том, чтобы отправить код, например, из 6 дгитов, перед тем как перевести пользователя на страницу регистрации, проверить его, если все в порядке, то пользователь может продолжить регистрацию.
Views.py
class RegisterView(CreateAPIView):
queryset = models.User.objects.all()
serializer_class = RegisterSerializer
Serializers.py
class RegisterSerializer(serializers.ModelSerializer):
photo = PhotoSerializer(read_only=True)
announcements = AnnouncementSerializer(many=True, read_only=True)
rating = SerializerMethodField('rating_avg')
number_of_ratings = SerializerMethodField('rating_number')
token = serializers.SerializerMethodField('get_token')
class Meta:
model = User
fields = ['id', 'email', 'password','last_name', 'first_name', 'patronymic', 'type', 'date_joined',
'phone', 'photo', 'rating', 'number_of_ratings', 'announcements', 'token']
extra_kwargs ={
'password':{'write_only':True}
}
def rating_avg(self, obj):
rating = Review.objects.filter(user=obj.id).aggregate(Avg('rate'))
return rating
def rating_number(self, obj):
number_of_ratings = Review.objects.filter(user=obj.id).count()
return number_of_ratings
def get_token(self, user):
tokens = RefreshToken.for_user(user)
refresh = text_type(tokens)
access = text_type(tokens.access_token)
token = {
"refresh": refresh,
"access": access
}
return token
def create(self, validated_data):
user = User(
email=validated_data['email']
)
user.set_password(validated_data['password'])
user.save()
return user