我试图调用模板签名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 ='签名')