注销不工作Django 1.9

时间:2017-02-14 15:43:35

标签: python django python-3.x

我正在构建一个Django网站,但我的注销无效。该网站包含两个应用程序,即公开的应用程序和私有的学生应用程序。在我的 student 应用程序中,我已将 @login_required 装饰器放在每个方法中,但注销方法除外。但是,当我单击 student 应用程序中的 logout 链接时,我的页面未被重定向到应用程序,它会进入另一个视图学生应用,当我重新加载页面时,虽然我已经放置 @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 /模板/ student_area.html

...
<a href={% url 'user_logout' %} class="btn btn-default">Logout</a>
...

我在这个问题上迷了路,谢谢你。

1 个答案:

答案 0 :(得分:2)

您的var connString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString; using (var connection = new SqlConnection(connString)) { foreach(var product in CSVProducts){ connection.Insert(product); } } 网址格式与video_detail匹配。 Django一找到匹配就会停止,因此/logout/的请求将由/logout/视图而不是std_video_detail_view视图处理。

您可以通过更改user_logout网址的正则结构以使其不发生冲突(例如,您可以使用video_detail)或在视频上方移动注销网址格式来解决此问题细节模式。