0
我是Django的新手。登录验证错误
我的登录页面只需要“用户名”和“密码”,如果它们留空或填写不正确,我想raise ValidationError。我创建的代码,但它只是提出了
“在KeyError异常/登录/”和“UnboundLocalError在/登录/:分配前引用了当地 变量‘语境’”
如何解决我的代码?
views.py
def LoginRequest(request):
if request.user.is_authenticated():
return HttpResponseRedirect('/profile/')
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username=form.cleaned_data['username']
password = form.cleaned_data['password']
uasite1= authenticate(username=username, password=password)
if uasite1 is not None:
login(request, uasite1)
return HttpResponseRedirect('/profile/')
else:
return render_to_response('login.html', {'form': form}, context_instance=RequestContext(request))
else:
return render_to_response('login.html', context, context_instance=RequestContext(request))
else:
form = LoginForm()
context ={ 'form' : form}
return render_to_response('login.html',{'form': form}, context_instance=RequestContext(request))
form.py
class LoginForm(forms.Form):
username = forms.CharField(label = (u'User Name'))
password = forms.CharField(label = (u'Password'),widget = forms.PasswordInput(render_value=False))
def clean_username(self):
data = self.cleaned_data['username']
if not data:
raise forms.ValidationError("Please Enter Username.")
return data
def clean_password(self):
data = self.cleaned_data['password']
if not data:
raise forms.ValidationError("Please Enter Password.")
return data
def clean(self):
username = self.cleaned_data['username']
password = self.cleaned_data['password']
try:
User.objects.get(username=username, password=password)
except User.DoesNotExist:
raise forms.ValidationError("Email or Password is incorrect.")
return self.cleaned_data
谢谢,但同样的错误发生......任何想法? – stack5914
对不起内容→{} – stack5914
发生的事情:) –