Django NoReverseMatch при ошибке функции выхода из системы
Я сталкиваюсь с такой ошибкой в части logout моего проекта Django. Я перепробовал много способов с примерами, которые искал в интернете, но ошибка не проходит.
layout.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Layout</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<!-- <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> -->
<link href="https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel="stylesheet">
</head>
<body>
{% block content %}
{% endblock %}
<script src="{% static 'js/popper.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
dash.html
{% extends 'layout.html'%}
{% load static %}
{% block content %}
<div class="sidebar-container">
<div class="sidebar-logo">
Ox.v1
</div>
<ul class="sidebar-navigation">
<li>
<a href="#">
<i class="fa fa-home" aria-hidden="true"></i>Anasayfa
</a>
</li>
<li>
<a href="#">
<i class="fas fa-chart-line"></i> Dashboard
</a>
</li>
<li>
<a href="#">
<i class="fas fa-phone-volume"></i> Infotmation
</a>
</li>
<li>
<a href="#">
<i class="fas fa-adjust"></i> Users
</a>
</li>
<li>
<a href="{% url 'logout_view' %}">
<i class="fas fa-outdent"></i> Exit
</a>
</li>
</ul>
</div>
{% endblock %}
views.py
from django.shortcuts import render
from django.db import connections
from django.shortcuts import redirect, render
from django.http import HttpResponse,HttpResponseRedirect
from django.contrib.auth.decorators import user_passes_test
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.contrib import auth
from django.contrib.auth import logout
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request, user)
return redirect('dash')
else:
return redirect('login')
else:
return render(request, 'pages/login.html')
def dash(request):
return render(request, 'pages/dash.html')
def logout_view(request):
logout(request)
return redirect('login')
urls.py
from django.contrib import admin from django.urls import path from . import views
urlpatterns = [
path('',views.login,name='login'),
path('zZ6jMGa8tBHYcjPS/',views.dash,name='dash'),
]
error
Reverse for 'logot_view' not found. 'logot_view' is not a valid view function or pattern name.
Как я могу решить эту проблему?
У вас есть функция, зарегистрированная как logout_view(), однако у вас нет шаблона URL, чтобы направить ее куда-либо.
Ваш urls.py должен выглядеть следующим образом:
urlpatterns = [
path('',views.login,name='login'),
path('zZ6jMGa8tBHYcjPS/',views.dash,name='dash'),
path('logout/',views.logout_view,name='logout_view'),
]