I have 2 views for inserting phone number and another view is used to verify OTP code, now I want to send a message from verify view to the previous view that shows verify code is not valid or the time has expired.
this view just check phone number that registar or not
def manage_account(request,):
form = RegisterForm(request.POST)
if request.method == 'POST':
# if user is exist just login else make user
try:
if 'phone_number' in request.POST:
phone_number = request.POST.get('phone_number')
user = UserPhone.objects.get(phone_number=phone_number)
# send OTP
otp = helper.get_random_otp()
# helper.send_otp(phone_number, otp)
# save otp
user.otp = otp
print('OTP:', otp)
user.save()
request.session['user_phone'] = user.phone_number
# redirect to verify page
return HttpResponseRedirect(reverse('verify'))
except UserPhone.DoesNotExist:
form = RegisterForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
# send otp
otp = helper.get_random_otp()
# helper.send_otp(phone_number, otp)
# save otp
user.is_active = False
user.otp = otp
print('OTP:', otp)
user.save()
# for send a value to other pages
request.session['user_phone'] = user.phone_number
# redirect to verify page
return HttpResponseRedirect(reverse('verify'))
return render(request, 'registration/login.html', {'form': form, })
this view for verify OTP Code if is not valid or time has expired it reverse to manage_accout view that I want to send a message too.
def verify(request):
# for get value from other pages
request.session['verification'] = True
verification = 0
try:
phone_number = request.session.get('user_phone')
user = UserPhone.objects.get(phone_number=phone_number)
if request.method == 'POST':
#chek otp exprition
if not helper.check_otp_expiration(user.phone_number):
# show message in manage_account, that expire time
return HttpResponseRedirect(reverse('manage_account',))
if user.otp != int(request.POST.get('otp')):
# show message in manage_account, that OTP code is not valid
return HttpResponseRedirect(reverse('manage_account',))
else:
user.is_active =True
user.save()
login(request, user)
return HttpResponseRedirect(reverse('myaccount'))
return render(request, 'registration/verify.html', {'phone_number': phone_number})
except UserPhone.DoesNotExist:
return HttpResponseRedirect(reverse('manage_account'))
how can I Do this?