Django raise 没有被叫到
Django raise not getting called
//forms.py :
//这是我的应用程序的表单部分。
from django import forms
from django.contrib.auth import (
authenticate,
login,
get_user_model,
logout,
)
User=get_user_model()
class UserLoginForm(forms.Form):
username=forms.CharField()
password=forms.CharField(widget=forms.PasswordInput)
def clean(self):
username=self.cleaned_data.get('username')
password=self.cleaned_data.get('password')
user=authenticate(username=username,password=password)
if not user:
raise forms.ValidationError("This user does not exist")
if not user.check_password(password):
raise forms.ValidationError("Incorrect password")
if not user.is_active:
raise forms.ValidationError("This user is no longer active")
return super(UserLoginForm,self).clean()
// views.py :
//查看部分,其中,我使用了在表单中创建的 UserLoginForm。
from django.shortcuts import render
from django.contrib.auth import (
authenticate,
login,
get_user_model,
logout,
)
from .forms import UserLoginForm
def login_view(request):
if request.method=='POST':
form=UserLoginForm(request.POST or None)
if form.is_valid():
username=form.cleaned_data.get("username")
password=form.cleaned_data.get("password")
return render(request,"accounts/home.html")
else:
form=UserLoginForm()
return render(request,"accounts/login.html",{"form":form})
def register_view(request):
return render(request,"form.html",{})
def logout_view(request):
return render(request,"form.html",{})
//login.html :
//login.html 打开主页。
<div>
<form method='POST' action=''>{% csrf_token %}
<input type="text" name="username" placeholder="Username"/>
<input type="password" name="password" placeholder="Password"/>
<input type="submit" value="Login"/>
</form>
</div>
没有错误,但是在无效的 //stuff 上没有出现引发错误,页面也没有在有效用户上重定向到 home.html。请帮我解决这个问题。我找不到问题。
请<a href="https://docs.djangoproject.com/en/2.0/topics/forms/#rendering-form-error-messages" rel="nofollow noreferrer">Rendering form error messages</a>
显示错误信息...
<form method='POST' action=''>{% csrf_token %}
{{ form.non_field_errors }}
<input type="text" name="username" placeholder="Username"/>
//forms.py :
//这是我的应用程序的表单部分。
from django import forms
from django.contrib.auth import (
authenticate,
login,
get_user_model,
logout,
)
User=get_user_model()
class UserLoginForm(forms.Form):
username=forms.CharField()
password=forms.CharField(widget=forms.PasswordInput)
def clean(self):
username=self.cleaned_data.get('username')
password=self.cleaned_data.get('password')
user=authenticate(username=username,password=password)
if not user:
raise forms.ValidationError("This user does not exist")
if not user.check_password(password):
raise forms.ValidationError("Incorrect password")
if not user.is_active:
raise forms.ValidationError("This user is no longer active")
return super(UserLoginForm,self).clean()
// views.py :
//查看部分,其中,我使用了在表单中创建的 UserLoginForm。
from django.shortcuts import render
from django.contrib.auth import (
authenticate,
login,
get_user_model,
logout,
)
from .forms import UserLoginForm
def login_view(request):
if request.method=='POST':
form=UserLoginForm(request.POST or None)
if form.is_valid():
username=form.cleaned_data.get("username")
password=form.cleaned_data.get("password")
return render(request,"accounts/home.html")
else:
form=UserLoginForm()
return render(request,"accounts/login.html",{"form":form})
def register_view(request):
return render(request,"form.html",{})
def logout_view(request):
return render(request,"form.html",{})
//login.html :
//login.html 打开主页。
<div>
<form method='POST' action=''>{% csrf_token %}
<input type="text" name="username" placeholder="Username"/>
<input type="password" name="password" placeholder="Password"/>
<input type="submit" value="Login"/>
</form>
</div>
没有错误,但是在无效的 //stuff 上没有出现引发错误,页面也没有在有效用户上重定向到 home.html。请帮我解决这个问题。我找不到问题。
请<a href="https://docs.djangoproject.com/en/2.0/topics/forms/#rendering-form-error-messages" rel="nofollow noreferrer">Rendering form error messages</a>
显示错误信息...
<form method='POST' action=''>{% csrf_token %}
{{ form.non_field_errors }}
<input type="text" name="username" placeholder="Username"/>