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})