0

私のテンプレートは以下です:

  <div id="divLogin">
                {% block login %}
                <form action="/login" method="post">
                    {% csrf_token %}
                    <label for="id_name"></label><input type="text" name="email" id="id_name" placeholder="Your Email">
                    <label for="id_pass"></label><input type="password" name="password" placeholder="Your Password">
                    <input type="submit" id="btnLogin" value="Log In" class="btn">
                </form>
                {% endblock %}
            </div>

既にテンプレートに {% csrf_token %} を追加しており、ログイン ビューは

def login_view(request):
    if request.method == 'POST':
        useremail=request.POST['email']
        password=request.POST['password']
        try:
            user=User.objects.get(email=useremail)
            if user.check_password(password):
                uAuth=authenticate(username=user.username,password=password)
                login(request,uAuth)
                return render_to_response("blog.html",{'loginuser':user},context_instance=RequestContext(request))
        except User.DoesNotExist:
            return redirect('/')
    return redirect('/')

私も使用render_to_responseしましたが、RequestContextそれでもエラーが発生しました。非常に配線されたことが1つあります.login_viewメソッドにブレークポイントを設定しましたが、login_viewメソッドに入る前にcsrfエラーが指摘されました. この方法についての応答はありませんか?

私のコードに何か問題がありますか?

私のsettings.pyに追加django.middleware.csrf.CsrfViewMiddlewareしました。MIDDLEWARE_CLASSES

4

1 に答える 1

0

の後にリダイレクトを使用する必要がありますpost

テンプレートをレンダリングするビューにリダイレクトします。

def login_view(request):
    if request.method == 'POST':
        useremail=request.POST['email']
        password=request.POST['password']
        try:
            user=User.objects.get(email=useremail)
            if user.check_password(password):
                uAuth=authenticate(username=user.username,password=password)
                login(request,uAuth)
                return HttpResponseRedirect('/someurl')
        except User.DoesNotExist:
             return redirect('/')
    else:
        return render_to_response('login.html',context_instance=RequestContext(request))


def someurl(request):
    if request.method == 'GET':
         render_to_response("blog.html",    
               {'loginuser':user},context_instance=RequestContext(request))
于 2013-07-27T05:33:42.253 に答える