Я думаю, вы сделали это сложнее, чем нужно.Django поставляется с LogoutView
и позволяет выходить из системы с запросами GET.Вы можете использовать это представление выхода из системы или изменить свое собственное на:
from django.shortcuts import redirect
def user_logout(request):
logout(request)
return HttpResponseRedirect('login') # assumes you have a URL pattern with name='login'.
Обратите внимание, что HttpResponseRedirect('login')
будет перенаправлять на относительный URL 'login'
, поэтому вы можете в конечном итоге получить /logout/login
.Вы должны либо использовать абсолютный URL-адрес (например, HttpResponseRedirect('/login/')
), изменить URL-адрес (например, return HttpResponseRedirect(reverse('login'))
), либо использовать ярлык redirect
, который позаботится о том, чтобы изменить его.
После того, как вы изменили выход из системыпросмотреть, вы можете удалить форму и просто ссылку на страницу выхода из системы.
<a href="{% url 'logout' %}" onClick="document.getElementById('logoutform').submit()" class="btn">Logout</a>