私はDjangoのウェブサイトを構築していますが、ログアウトが機能していません。このサイトは公開アプリであるメインアプリとプライベートのアプリの2つのアプリで構成されています。 の学生アプリでは、logoutメソッドを除いて、すべてのメソッドに@ login_requiredデコレータを配置しました。しかし、私は学生アプリでログアウトのリンクをクリックしたときに、私のページはメインアプリにリダイレクトされていない、それは学生アプリ内の別のビューに行き、私はページをリロードすると、コンテンツがあります私は@login_requiredデコレータを置いていますが、まだ利用可能です。ここに私のコードです:ログアウトが機能しませんDjango 1.9
ウェブサイト/ urls.py
from main_app import urls as main_urls
from student_app import urls as std_urls
urlpatterns = [
url(r'^index/', include(main_urls)),
url(r'^student-area/', include(std_urls))]
ウェブサイト/ settings.py
LOGIN_URL = '/index/login/'
LOGIN_REDIRECT_URL = '/student-area/'
main_app/urls.py
...
urlpatterns = [
url(r'^$', views.index, name='index'),
...]
student_app/urls.py
...
urlpatterns = [
url(r'^$', views.std_videos_view, name='student_area'),
url(r'^(?P<video_key>[a-zA-Z0-9\_\.]+)/$', views.std_video_detail_view, name='video_detail'),
url(r'^materials-std/$', views.std_material_view, name='materials_std_view'),
url(r'^download-material/(?P<material_key>[a-zA-Z0-9\_\.]+)/$', views.std_material_download, name='download_material'),
url(r'^sims/$', views.std_sim_view, name='sims_view'),
url(r'^download-sim/(?P<sim_key>[a-zA-Z0-9\_\.]+)/$', views.std_sim_download, name='download_sim'),
url(r'^contact/$', views.std_contact_view, name='std_contact'),
url(r'^logout/$', views.user_logout, name='user_logout')
]
student_app/views.py私はこの中で失われています
...
<a href={% url 'user_logout' %} class="btn btn-default">Logout</a>
...
from django.contrib.auth import logout
from django.shortcuts import redirect
...
def user_logout(request):
logout(request)
return redirect('index')
student_app /テンプレート/ student_area.html問題は、事前にありがとうございます。
申し訳ありませんが、質問でのみ*返品は忘れてしまいました。しかし、私はログアウトURLに$を入れて、うまくいきませんでした。 – Toshi
問題は、 '$'が見つからないことが原因で発生した場合、ログアウトURLパターンの上にあるURLパターンの1つになります。他のURLは表示していないので、例として 'user_logout'を使用しました。 – Alasdair
私は他のURLで質問を編集しました。問題を申し訳ありません。 – Toshi