如何在 Django 中注销?

新手上路,请多包涵

html代码

{% if request.user %}
    <a href="{% url 'main:logout' %}">
        Выход
    </a>
{% else %}
    <a href="{% url 'main:registration' %}">
        Регистрация
    </a>
{% endif%}

设置.py

 LOGIN_REDIRECT_URL = 'main/index'

视图.py

 def logout(request):
    logout(request)

网址.py

 from django.conf.urls import url
from . import views
from django.conf import settings

urlpatterns = [
    url(r'^logout/$', views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout')
]

怎么了?

在此处输入图像描述

原文由 Nursultan Kenzhegaliyev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 392
2 个回答

您正在使用不带 next_page 参数的自定义注销视图。您应该将它作为参数添加到您的视图并传递给 django logout 调用,或者只使用 django.contrib.auth.logout

例如在 urls.py 中:

 from django.conf.urls import url
from django.conf import settings
from django.contrib.auth.views import logout

urlpatterns = [
    url(r'^logout/$', logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout')
]

原文由 milorad.kukic 发布,翻译遵循 CC BY-SA 3.0 许可协议

Django 2.0 看起来它切换到基于类的视图

from django.contrib.auth.views import LogoutView

url(r'^logout/$', LogoutView.as_view(), {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),

原文由 bruinlax 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏