41

簡単なログイン機能を提供しました。ログアウトには内蔵のものを使ってみました。これは私のurls.pyです:

(r'', include('django.contrib.auth.urls')),

そしてこれは私のテンプレートファイルです:

{% if user.is_authenticated %}
logged in as {{ user }}
(<a href="{% url "logout" %}">logout</a>)
{% else %}

デフォルトのdjango管理サイトも有効にしました。をクリックするとlogout、管理ログアウトビューが表示されます。logout next page属性を渡して、どのビューをレンダリングするかをdjangoに指示するにはどうすればよいですか?

4

12 に答える 12

21

Django 1.6 でテスト済み:

私がしているのは、これを my に追加することですurls.py:

(r'^management/logout/$', 'django.contrib.auth.views.logout'),

そしてそれを使用しました:

<a href="{% url "django.contrib.auth.views.logout" %}?next=/">Log out</a>

引数として、next正しい URL を指定します。

Django 2.1でテスト済み

urlpatternsに追加urls.py:

from django.contrib.auth import views as auth_views

urlpatterns = [
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]

そして、それをテンプレートで使用します。

<a href="{% url "logout" %}?next=/">logout</a>

詳細については、こちらをご覧ください

于 2015-02-20T13:19:16.490 に答える
11

ドキュメントによると、next_page パラメータをログアウト ビューに指定できます。 https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.logout

(r'^logout/$', 'django.contrib.auth.views.logout',
    {'next_page': '/logged_out/'})
于 2013-03-18T02:55:24.737 に答える
11

最も簡単な解決策は次のとおりです。

  1. アプリがのインストール済みアプリの下 あることを確認してください。django.contrib.adminsettings.py

  2. テンプレートの名前が であることを確認してくださいlogged_out.html

于 2017-09-11T15:53:26.390 に答える
4

これはすべてマニュアルでかなりよく説明されていますが、あなたが理解していない特定のことはありますか?

https://docs.djangoproject.com/en/dev/topics/auth/default/#how-to-log-a-user-out

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

または、独自のビューを作成したくない場合

https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout

{% url 'logout' next='/some/url/' %}
于 2013-03-18T00:04:54.413 に答える
4

私は例によってDjangoに続いて同じ問題を経験していました...このURLが私のために働いていることがわかりました

url(r'^logout/$', 'django.contrib.auth.views.logout', { 'template_name': 'account/logout.html',}, name='logout' ),
于 2016-05-21T16:25:11.117 に答える