签名不在Django工作



我试图调用模板签名URL,然后重定向到主页。

profile.html:

<li><a data-hover="Logout" href="{% url 'signout' %}">Logout</a></li>

urls.py:

urlpatterns = [
    url(r'^$', views.login, name='login'),
    url(r'^ajax/validate_username/$', views.validate_username, name='validate_username'),
    url(r'^signout$', views.signout, name='signout'),
]

views.py:

def signout(request):
    if request.user.is_authenticated():
        logout(request)
        return HttpResponsePermanentRedirect('/')
    else:
        return HttpResponsePermanentRedirect('/')

有时签名功能在单击注销菜单时不起作用(功能签名为调用)。

可能,您应该使用HttpResponseRedirect而不是HttpResponsePermanentRedirect。因为永久重定向可以使用您打算始终运行signout的缓存。

您也可以这样进行签名:

from django.contrib.auth import views as auth_views
urlpatterns = [
    ...
    url(r'^signout/$', auth_views.logout, {'next_page': 'home'}, name='signout'),
    ...
]

您可以使用以下代码,它将起作用。

url(r'^签名/$','django.contrib.auth.views.logout', {'next_page':'/login/'},name ='签名')

最新更新