我正在更改帐户的密码。我从第一个视图获取用户名和密码并在第二个视图上传递它工作正常但是在第二个视图表单验证时。它会将错误重定向到第一个视图的表单。那是我的问题。
我的目标是如果第二次验证失败则丢弃数据(用户名和密码),不要更改密码。还有一件事我不希望用户通过get请求访问第二个视图。
def first_view(request):
if request.method == 'POST':
form=firstForm(request.POST) # for getting username password
if form.is_valid():
return second_view(request) # Don't want HttpResponse here. To send POST request.
#Sending username and password data in POST request.
else:
form=firstForm()
return render(request,'template1.html',{'form':form})
这是通过手机发送文本代码进行第二次身份验证
def second_view(request):
if request.method === 'POST':
form=secondForm(request.POST) # Single field - Code recieved on phone
username=request.POST['username']
password=request.POST['password']
code=GetRandomNumber() # Creates a random number to send on phone.
SendText(code,numer) # Sends code on number
if form.is_valid(): # HERE IT REDIRECTS TO THE FIRST VIEW FORM WITH ERROR
if code==request.POST['code']:
HttpResponse('Succeess')
else:
HttpResponse('Not allowed')
答案 0 :(得分:0)
如果我理解你很好,你想首先接受用户的用户名和密码,然后将用户重定向到另一个表格,在那里他将输入他在电话上收到的代码,然后再继续更改密码是对的吗?第二个视图的表单包含哪个字段?
答案 1 :(得分:0)
我建议你在这种情况下使用django会话。例如:
第一次观看
提示视图
像这样。