0
ユーザーが認証された後にパスワードリセットフォームを作成していますが、ユーザー名とパスワードを入力できるリセットページが表示されます。ただし、この新しいデータを設定して[送信]ボタンをクリックすると、次のページのURLにデータが表示されます。これを行わないようにアプリケーションを設定するにはどうすればよいですか? GETアクションがどのように動作するかだURLのdjangoにフォームデータが表示されない
views.py
def index(request):
if request.method == 'POST':
form = login(request.POST)
if form.is_valid():
user = form.cleaned_data['username']
passw = form.cleaned_data['password']
if user and passw:
#try the post to login
r=validateUser(user,passw)
if r:
formReset = reset()
return render(request, 'loggedin.html',{'form' : formReset})
else:
return render(request, 'index.html',{'form' : form})
else:
form = login()
loggedin(request)
return render(request, 'index.html', {'form' : form})
def loggedin(request):
if request.method == 'GET':
form = reset(request.GET)
if form.is_valid():
user = form.cleaned_data['username']
newpassword = form.cleaned_data['newpassword']
confirmnewpassword = form.cleaned_data['confirmnewpassword']
if newpassword == confirmnewpassword:
#passwords match
val = resetpassword(user,newpassword)
else:
return render(request, 'loggedin.html', {"message" : 'Passwords do not match', 'form' : form})
else:
return render(request, 'loggedin.html',{'form' : form})
forms.py
from django import forms
class login(forms.Form):
#class used for the login prompt
username = forms.CharField(widget=forms.TextInput(attrs={'class' : 'btn btn-lg btn-default'}),label='')
password = forms.CharField(widget=forms.PasswordInput(attrs={'class' : 'btn btn-lg btn-default'}),label='')
class reset(forms.Form):
#class used for inputs to reset password
username = forms.CharField(widget=forms.TextInput(attrs={'class' : 'btn btn-default'}),label='User Name')
newpassword = forms.CharField(widget=forms.PasswordInput(attrs={'class' : 'btn btn-default'}),label='New Password')
confirmnewpassword = forms.CharField(widget=forms.PasswordInput(attrs={'class' : 'btn btn-default'}),label='Confirm Password')
loggedin.html
{% extends "base.html" %}
{% load staticfiles %}
{% block content %}
<form action="/" method="GET">
{% csrf_token %}
<div class="container">
<h1>You are logged in</h1>
{{ message }} </br>
{{ form.as_p }}
<input type="submit" class="btn btn-lg btn-default" action="submit" value="Reset">
</div></form>{% endblock %}