Я строю сайт Django, но мой выход не работает. Сайт состоит из двух приложений: Главная приложение, которое является общедоступным, и студент приложение, которое является частным. В моем ученике приложение я положил @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
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
...
<a href={% url 'user_logout' %} class="btn btn-default">Logout</a>
...
Я теряюсь в этом проблема, спасибо заранее.
извините, я забыл * возврат * только в вопросе. Но я поставил $ в URL-адрес выхода и не работал. – Toshi
Если проблема вызвана отсутствием '' ', то это будет один из шаблонов URL над шаблоном URL выхода. Я использовал 'user_logout' в качестве примера, потому что вы не указали остальные URL-адреса. – Alasdair
Я редактировал вопрос с другими адресами, извините за неприятности. – Toshi