Устранение ошибки выхода из системы Django: Несмотря на правильную реализацию, кнопка выхода из системы все равно выдает ошибку
Я получаю эту ошибку каждый раз, когда нажимаю кнопку выхода из системы, что странно, потому что я сделал все правильные шаги и все равно получил тот же результат.
Ошибка
Метод не разрешен: /accounts/logout/ [03/Apr/2024 02:37:45] "GET /accounts/logout/ HTTP/1.1" 405 0
forms.py
from django.contrib.auth.forms import AuthenticationForm
from django import forms
attrs = {'class': 'form-control'}
class UserLoginForm(AuthenticationForm):
def __init__(self,*args,**kwargs):
super(UserLoginForm,self).__init__(*args,**kwargs)
username = forms.CharField(
label='Username',
widget=forms.TextInput(attrs=attrs)
)
password = forms.CharField(
label='Password',
widget=forms.PasswordInput(attrs=attrs)
)
accounts/urls.py
from django.contrib.auth.views import LoginView, LogoutView
from django.urls import path,include
from accounts.forms import UserLoginForm
urlpatterns = [
path('login/', LoginView.as_view(authentication_form=UserLoginForm),name='login'),
path('logout/', LogoutView.as_view(), name='logout'),
path('', include('django.contrib.auth.urls'))
]
settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
]
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/accounts/login'
project/urls.py
urlpatterns = [
path('__debug__/',include(debug_toolbar.urls)),
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls')),
path('', include('projects.urls')),
]
#logout.html
{% extends 'base.html' %}
{% load i18n %}
{% block content %}
<form method="post" action="{% url 'logout' %}">
{% csrf_token %}
<div class="card text-center">
<div class="card-header">
Log Out
</div>
<div class="card-body">
<h5 class="card-title">Are You Sure You Want To Log Out Of YOur Account? {{ user.username|title}} </h5>
{{ form.as_p }}
<input class="btn btn-danger" type="submit" value="logout">
</div>
</div>
</form>
{% endblock %}
#header.html
{% load i18n %}
{% load static %}
<nav class="navbar navbar-expand-sm navbar-light bg-danger bg-gradient p-3">
<div class="container-fluid">
<a class="navbar-brand" href="{% url 'Project_list' %}">
<img src="{% static 'media/logo.svg' %}" alt="Forjects Logo"
width="50" height="50"></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-between" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url 'Project_list' %}">Home</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url 'Project_create' %}">Create Project</a>
</li>
</ul>
{% if user.is_authenticated %}
<ul class="navbar-nav mb-2 mb-lg-0 me-3 ">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Hello {{ user.username|title }} Welcome Back
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="#">Profile</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{% url 'logout' %}">Log Out</a></li>
</ul>
</li>
</ul>
<form method="GET" action="{% url 'Project_list' %}" class="d-flex">
<div class="input-group">
<input class="form-control" type="text" name="q" placeholder="Search" value="{{ request.GET.q }}">
<button class="btn btn-outline-dark" type="submit"><i class="bi bi-search"></i></button>
</div>
</form>
{% else %}
<a class="btn btn-outline-light" href="{% url 'login' %}">{% trans 'Login' %}</a>
{% endif %}
</div>
</div>
</nav>
Я пытаюсь выйти из системы, но не могу. Я перепробовал все и спросил нескольких знакомых, но так и не смог решить эту проблему.