【发布时间】:2017-07-02 23:48:45
【问题描述】:
我正在构建一个 Django 网站,但我的注销不起作用。该网站由两个应用程序组成,main 应用程序是公共的,student 应用程序是私有的。在我的 student 应用程序中,除了注销方法之外,我已将 @login_required 装饰器放在每个方法中。但是当我点击 student 应用程序中的 logout 链接时,我的页面不会重定向到 main 应用程序,它会转到另一个视图student 应用程序,当我重新加载页面时,尽管我已经放置了 @login_required 装饰器,但内容仍然可用。这是我的代码:
网站/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/templates/student_area.html
...
<a href={% url 'user_logout' %} class="btn btn-default">Logout</a>
...
我迷失在这个问题上,提前谢谢你。
【问题讨论】:
标签: python django python-3.x