NoReverseMatch: Обратное соответствие для 'login' не найдено. 'login' не является действительной функцией представления или именем шаблона

Извините, что снова публикую эту проблему.

Я получаю ошибку, несмотря на то, что конфигурационные файлы выглядят правильно с записью 'login'.

В settings.py добавлено

LOGIN_URL = '/login/'

В APP/templates/base.html:

        {% if user.is_authenticated %}
            <a href="{% url 'logout' %}">Logout</a>
        {% else %}
            <a href="{% url 'login' %}">Login</a>
        {% endif %}

APP/views.py выглядит следующим образом:

from django.http import HttpResponse
from django.template import loader
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required

@login_required(login_url='login') # Redirect to the login page if not authenticated
def protected_intro(request):
    return render(request, 'intro.html')

APP/urls.py выглядит следующим образом:

from django.urls import path
from django.contrib.auth.views import LoginView
from . import views

app_name = 'APP'

urlpatterns = [
    ...
    path('login/', LoginView.as_view(), name='login'),
]

Все записи относительно 'login' кажутся правильными, но в итоге выдается ошибка "Reverse for 'login' not found. 'login' не является правильной функцией представления или именем шаблона."

Пожалуйста, помогите.

Спасибо!

Я пытался искать решение, но не смог его решить.

app_name = 'APP' делает имена шаблонов url префиксом этого пространства имен. Теперь вам нужно ссылаться на эти url-шаблоны как {% url 'APP:login' %}

или удалить app_name = 'APP'

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