2017-02-16 3 views
1

私はDjangoのログアウト方法を使用してユーザーがログアウトしたときに、ユーザーをメインにリダイレクトしようとしていました。しかし、それは私にこのようなエラーメッセージを送り続ける。どの部分が間違っていますか?Django:/app/logout/HttpResponseRedirectを使用しているときのMultiValueDictKeyError

エラーメッセージ:

MultiValueDictKeyError at /blog/logout/ "'path'" 

views.py

from django.contrib.auth import authenticate, login, logout 

@login_required 
def logout(request): 
    logout(request) 

    return HttpResponseRedirect('blog/login.html') 

urls.py

url(r'^login/$', views.login, name='login'), 
url(r'^logout/$', views.logout, name='logout'), 

EDIT 01 私はパス変数を見つけることを試みたが、それを見つけることができませんでした。 また、ログアウトメソッドのコードを変更しました。

@login_required 
def logout(request): 
    logout(request) 

    return HttpResponseRedirect('/blog/login/') 

これはviews.py

​​

でログインであり、これは関連性がある場合、私は知らないが、私はsettings.py

#added for login authentification 
LOGIN_REDIRECT_URL = 'home' 
+0

@PrakharTrivediあなたはこのようにHttpResponseRedirect( '/ blog/login /')を返すことを意味しますか? – camila

+0

@PrakharTrivedi 'MultiValueDictKeyError at/blog/logout/ ' 'path' "というエラーがスローされます。これはURLによって引き起こされますか? – camila

+0

その後、コード全体でのログアウトの正確な表示を教えてください。正確なディレクトリ構造。 Alosはこの「パス」変数が何であるか教えてくれますし、コードにはどこに配置されていますか? –

答えて

0

で問題をこの行を追加この行には:

return HttpResponseRedirect('blog/login.html') 

HttpResponseRedirectURLパスないテンプレートの場所/パスを必要とする、私は何が必要だと思うです:

from django.http import HttpResponseRedirect 
from django.contrib.auth import authenticate, login 
from django.contrib.auth import logout as django_logout 

@login_required 
def logout(request): 
    django_logout(request) 

    return HttpResponseRedirect('/blog/login/') 

もログインビューのこれらの行を変更します。

username = request.POST['username'] 
password = request.POST['password'] 

TO:

username = request.POST.get('username') 
password = request.POST.get('password') 
関連する問題