Почему декоратор login_required не работает?

Работаю над простым проектом с использованием Django 3.2 и декоратор loqin_required не работает. Когда я закрываю сервер и открываю его снова, он работает в первый раз, но больше не работает. Раньше он работал очень хорошо, но я не уверен, что я изменил в коде, что он больше не работает.

views.py

from django.http.response import HttpResponse
from django.shortcuts import render, redirect
from django.utils import timezone
from django.db.models import Count
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required

from django.http import HttpResponse
from django.contrib import messages

from .models import *
from .models import __str__
from .forms import CreateUserForm

# Create your views here.

@login_required(login_url='login/')
def home(request):
    count_item = todo.objects.count()
    
    all_items = todo.objects.all().order_by("created")

    context = {'all_items': all_items, 'count_item':count_item}

    return render(request, 'html/home.html', context)

@login_required(login_url='login/')
def add_todo(request):
    current_date = timezone.now()
    new_item= todo(content = request.POST["content"])
    new_item.save()
    return redirect('/')

@login_required(login_url='login/')
def delete_todo(request, todo_id):
    item_to_delete = todo.objects.get(id=todo_id)
    item_to_delete.delete()
    return redirect('/')

def login_user(request):

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        
        user = authenticate(request, username=username, password=password)
        # print('USER:', user)

        if user is not None:
            login(request, user)
            return redirect('/') 
    return render(request, 'html/login.html')


def logoutUser(request):
    logout(request)
    return redirect('login/')

def register_user(request):
    form = CreateUserForm()
    if request.method == 'POST':
        form = CreateUserForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.save()

            user = authenticate(request, username=user.username, password=request.POST.get('password1'))

            print("USER:",user)

            if user is not None:
                login(request, user)
                return redirect('/')

    context = {'form':form}
    return render(request, 'html/register.html', context)

urls.py

from django.urls import path
from django.views.generic.base import RedirectView

from . import views


app_name = 'todo'




urlpatterns = [
    path('', views.home, name="home"),
    path('add_todo/', views.add_todo),
    path('delete_todo/<int:todo_id>/', views.delete_todo),
    path('login/', views.login_user, name='login'),
    path('logout/', views.logoutUser, name='logout'),
    path('register/', views.register_user, name="register"),
]

Любые предложения или ответы будут признательны. Спасибо!

Вы должны поставить его так перед классами

@login_required(login_url='/login/')

читайте это для большего

Если вы выводите пользователя из системы только путем перенаправления, вы на самом деле не выводите его из системы. Вы должны использовать функцию logout фреймворка аутентификации, с функцией logout(), или вы можете использовать представление logout_then_login из django, если все, что вы хотите сделать, это отправить пользователей обратно на страницу входа.

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