Как отправить проверочный код на электронную почту и проверить его в 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

Вернуться на верх