Django фильтр пользователей для отправки смс активации

Когда пользователь заполняет регистрационную форму, введенная информация сохраняется в базе данных и ему отправляется SMS с активацией аккаунта, но если пользователь по какой-либо причине не может ввести код активации и хочет заполнить регистрационную форму с самого начала, то он столкнется с ошибкой. Я использовал ---- filter(phone_number=phone_number, verify = False).exists(): ----- для фильтрации пользователей, но я думаю, что есть проблема с тем, как я пишу код

формы

class RegistrationForm(forms.ModelForm):
user_name = forms.CharField(
    min_length=4, max_length=50, help_text='Required'
)

phone_number = forms.CharField(max_length=11,
                               error_messages={
                                   'required': 'با عرض پوزش ، شما به یک شماره تلفن نیاز دارید'},
                               validators=[RegexValidator(regex=r'09(\d{9})$')],
                               )

password = forms.CharField(widget=forms.PasswordInput)

def clean_phone_number(self):
    phone_number = self.cleaned_data['phone_number']
    if User.objects.filter(phone_number=phone_number).exists():
        raise forms.ValidationError(
            'Please use another Email, that is already taken')
    return phone_number

просмотров

def account_register(request):

if request.user.is_authenticated:
    return redirect("store:home")

if request.method == "POST":
    registerForm = RegistrationForm(request.POST)
    if registerForm.is_valid():
        user = registerForm.save(commit=False)
        user.phone_number = registerForm.cleaned_data["phone_number"]
        user.set_password(registerForm.cleaned_data["password"])
        user.is_active = False
        user.save()
        code_user = f"{user.code}"
        print(code_user)
        #send_sms
        return render(request, "verificationpage.html", {"form": registerForm})
    else:
        return HttpResponse("Error handler content", status=400)
else:
    registerForm = RegistrationForm()
return render(request, "login.html", {"form": registerForm})
Вернуться на верх