DJANGO не может перейти на страницу с помощью гиперссылки, но ввод адреса страницы работает нормально
делаю простой проект django с 2 приложениями одно для блогов, другое для пользователей оба работают нормально, но я не могу перейти по гиперссылке на этой странице
<p>
<a href="{% url 'learning_logs:home' %}">Home</a>
<a href="{% url 'learning_logs:topics' %}">Topics</a>
{% if user.is_authenticated %}
Hello, {{ user.username }}.
<a href="{% url 'users:logout' %}">logout</a>
{% else %}
<a href="{% url 'users:login' }">login</a>
{% endif %}
urls.py in users
from django.urls import URLPattern, path
from django.contrib.auth.views import LoginView
from . import views
app_name = 'users'
urlpatterns = [
path('login/', LoginView.as_view(template_name='login.html'), name='login'),
path('logout/', views.logout_view, name='logout'),
]
основные ссылки проекта
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('learning_logs.urls', namespace='learning_logs')),
path('users/', include('users.urls', namespace='users')),
]
сообщение об ошибке
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/%7B%25%20url%20'users:login'%20%7D
Using the URLconf defined in learning_log.urls, Django tried these URL patterns, in this order:
admin/
[name='home']
topics [name='topics']
topics/<topic_id> [name='topic']
new_topic [name='new_topic']
new_entry/<topic_id> [name='new_entry']
edit_entry/<entry_id> [name='edit_entry']
users/
The current path, {% url 'users:login' }, didn’t match any of these.
он показывает страницу, если я ввожу /users/login/ в адресной строке
Вы забыли % в login внутри вашего html файла.
Измените код html с на
<a href="{% url 'users:login' }">login</a>
To
<a href="{% url 'users:login' %}">login</a>
Уберите кавычки
{% if user.is_authenticated %}
<a href="{% url users:logout %}">logout</a>
{% else %}
<a href="{% url users:login %}">login</a>
{% endif %}
Спрашивая очевидное, пробовали ли вы:
<a href="{% url 'logout' %}">Log Out</a>
Другими словами, вы назвали свой url 'logout', поэтому попробуйте просто использовать имя url.