0

私はジャンゴの初心者です。

私のログインページには「ユーザー名」と「パスワード」だけが必要です。それらが空白のままであるか、間違って入力されている場合は、 ValidationErrorを発生させたいと思います。コードを作成しましたが、発生するだけです

「/login/ での KeyError」および「/login/ での UnboundLocalError : 割り当て前に参照されるローカル変数 'c​​ontext'」

コードを修正するにはどうすればよいですか?

ビュー.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
4

1 に答える 1

0

テンプレートがありません...

from django import template

context_instance=template.RequestContext(request)

そして..ここで使用されるコンテキストへの参照はありません....

return render_to_response('login.html', context, context_instance=RequestContext(request))
于 2012-11-08T01:45:16.510 に答える