2017-03-28 9 views
2

htmlコードdjangoにログアウトするには?

{% if request.user %} 
    <a href="{% url 'main:logout' %}"> 
     Выход 
    </a> 
{% else %} 
    <a href="{% url 'main:registration' %}"> 
     Регистрация 
    </a> 
{% endif%}  

settings.py

LOGIN_REDIRECT_URL = 'main/index' 

views.py

def logout(request): 
    logout(request) 

urls.py

from django.conf.urls import url 
from . import views 
from django.conf import settings 

urlpatterns = [ 
    url(r'^logout/$', views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout') 
] 

間違って何ですか?

enter image description here

+2

スクリーンショットにコード(またはトレースバック)を投稿しないでください。検索やコピーができず、使い勝手が悪いです。代わりに、質問に直接テキストとして貼り付けます。それを選択して '{} 'ボタンまたはCtrl + Kをクリックすると、コードブロックは4つのスペースでインデントされ、コードとしてレンダリングされます。 – Chris

答えて

3

あなたはにnext_pageパラメータをとらないカスタムログアウト・ビューを使用しています。 あなたのビューにパラメータとして追加し、ログアウトコールをジャンゴに渡すか、単に使用する必要があります django.contrib.auth.logout

例えばurls.pyで:最初に、私だけのためにあなたのビューファイル

+0

コードで表示できますか? –

+0

私はあなたが好きでした。しかし、それは私の管理ページを示しています。または私はログアウト機能を理解していません。自分のウェブサイトを作ってログインしたところ、システムからログアウトしたい。 –

+0

あなたは(あなたの例では、あなたがLOGIN_REDIRECT_URLを定義する)あなたの設定でLOGOUT_REDIRECT_URLを定義する必要があり、またはその代わりsettings.LOGOUT_REDIRECT_URLのurls.pyに、「/メイン/インデックス」(または任意のURLあなたが必要とする)を置きます。 –

0

輸入ジャンゴログアウトurls.pyから 'logout' urlを削除しました(私はDjango 1.11を使用しています)。私はなぜ/どこ/どのように考えていない。私のハックな解決策は、 'signout'という別のURLを使用することでした。

url(r'^signout/$', logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'), 
+0

私はviews.pyでそれを書いた –

0

の上部にfrom django.contrib.auth import logoutを書き、URL「ログアウトは」私ならばDjangoは大声で文句にもかかわらず、他の場所で使用されていた

from django.conf.urls import url 
from django.conf import settings 
from django.contrib.auth.views import logout 

urlpatterns = [ 
    url(r'^logout/$', logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout') 
] 
関連する問題