Подтверждение почты по коду Django

Как в форме регистрации сделать поле для шестизначного кода, который пришёл на почту(подтвердить эмеил)? Написал код, который генерирует и сохраняет в базе данных шестизначный код, привязанный к пользователю. Так вот как реализовать подтверждение почты по этому коду? (В табличке юезров сделал флаг, который при успешном подтверждении ставится в True)

views.py

class RegistrationUserView(CreateView):
    template_name = 'users/registration.html'
    form_class = RegistrationUserForm

    def form_valid(self, form):
        user = form.save()
        login(self.request, user)
        return redirect('homepage')

forms.py

class RegistrationUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

def save(self, commit=True):
    user = super(RegistrationUserForm, self).save(commit=True)
    record = EmailVerification.objects.create(code=random.randint(100_000, 999_999), user=user)
    record.send_verification_email()
    return user

models.py

class User(AbstractUser):
    is_verified_email = models.BooleanField(default=False)

class EmailVerification(models.Model):
    code = models.CharField(max_length=6, unique=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)

def __str__(self):
    return f'EmailVerification for {self.user.email}'

def send_verification_email(self):
    send_mail(
        'Subject here',
        f'Verification code: {self.code}',
        'from@example.com',
        [self.user.email],
        fail_silently=False,
    )
Вернуться на верх