Django logout view показывает пустую страницу и не выводит пользователя из системы

Я столкнулся с проблемой, связанной с моим представлением выхода из системы. Я создал пользовательский CBV, который наследует от стандартного Django LogoutView. Интересным фактом является то, что он прекрасно работает с FBV. Когда я связываю URL /logout/ с CBV, появляется только пустая страница и не происходит выхода из системы подписанного пользователя. Я также создал шаблон, который визуализируется без каких-либо проблем с FBV. Здесь вы можете увидеть мои представления:

from django.shortcuts import redirect, render
from django.contrib.auth import views as auth_views, get_user_model, logout
from django.urls import reverse_lazy
from django.views import generic as views
from accounts.forms import MyUserCreationForm

UserModel = get_user_model()


# Create your views here.
class MyUserRegisterView(views.CreateView):
    template_name = "user-register.html"
    form_class = MyUserCreationForm
    success_url = reverse_lazy("home page")


class MyUserLoginView(auth_views.LoginView):
    template_name = "user-login.html"


class MyUserLogoutView(auth_views.LogoutView):
    template_name = "user-logout.html"


def logout_view(request):
    if request.method == "POST":
        logout(request)
        return redirect("home page")
    return render(request, "user-logout.html")

Вот мои урлы:

from django.urls import path
from accounts import views


urlpatterns = (
    path("register/", views.MyUserRegisterView.as_view(), name="register"),
    path("login/", views.MyUserLoginView.as_view(), name="login"),
    path("logout/", views.MyUserLogoutView.as_view(), name="logout"),
)

Я также определил LOGOUT_REDIRECT_URL = reverse_lazy("home page") в settings.py

Здесь также представлен мой шаблон, который прекрасно работает с FBV и выполняет свою работу:

{% if request.user.is_authenticated %}

<h1>Are you sure you want to logout, {{ request.user }}?</h1>

<form action="{% url 'logout' %}" method="post">    

    {% csrf_token %}

    <button>Logout</button>

</form>

{% else %}

<h1>No user logged in</h1>

{% endif %}

URL-адрес для выхода из системы следующий: http://127.0.0.1:8000/accounts/logout/

Заранее благодарю вас, добрые люди!

Вернуться на верх