私はジャンゴの初心者です。
私のログインページには「ユーザー名」と「パスワード」だけが必要です。それらが空白のままであるか、間違って入力されている場合は、 ValidationErrorを発生させたいと思います。コードを作成しましたが、発生するだけです
「/login/ での KeyError」および「/login/ での UnboundLocalError : 割り当て前に参照されるローカル変数 'context'」
コードを修正するにはどうすればよいですか?
ビュー.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))
フォーム.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