NoReverseMatch: Реверс для 'article' с ключевыми аргументами '{'slug': ''}'' не найден
Создан файл urls.py, содержащий app_name = "articles", который не распознается в "template_base.html", установленном в качестве шаблона модели.
NoReverseMatch at /articles/
Reverse for 'article' with keyword arguments '{'slug': ''}' not found. 1 pattern(s) tried: \ ['articles/(?P\<slug\>\[-a-zA-Z0-9\_\]+)/\\Z'\]
Затронутая строка:
\<h2\>\<a href="{% url 'articles:article' slug=article.slug %}"\>{{ article.titre }}\</a\>\ </h2\>
3 раза пытаюсь выполнить тот же код, что и в уроке, но мне нужна ваша помощь.
urls.py
from django.contrib import admin
from django.urls import path, include
from articles import views
app_name = "articles"
urlpatterns = [
path('', views.articles_view, name='articles'),
path('<slug:slug>/', views.article_view, name='article')
]
template_base.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>{% block titre %}{% endblock %}</title>
</head>
<body>
<ul style="list-style: none">
<li style="display: inline-block; padding: 10px 20px;">
<a href="{% url 'home' %}">Accueuil</a>
</li>
<li style="display: inline-block; padding: 10px 20px;">
<a href="{% url 'articles:articles' %}">Articles</a>
</li>
<li style="display: inline-block; padding: 10px 20px;">
<a href="{% url 'contact' %}">Contact</a>
</li>
</ul>
{% block contenu %} {% endblock %}
</body>
</html>
view.py
from django.shortcuts import render
from django.http import HttpResponse
from articles.models import Article
def articles_view(request):
articles = Article.objects.all()
return render(request, 'articles/list.html', context={'articles': articles})
def article_view(request, slug):
return HttpResponse("Page d'article")
articles/list.html
{% extends 'template_base.html' %}
{% block titre %}Page d'articles{% endblock %}
{% block contenu %}
<h1>Les articles</h1>
{% for article in articles %}
<h2><a href="{% url 'articles:article' slug=article.slug %}">{{ article.titre }}</a></h2>
<p>{{ article.contenu }}</p>
<span>{{ article.date_publication }}</span>
{% endfor %}
{% endblock %}
articles.detail.html
{% extends 'template_base.html' %}
{% block titre %}Page d'articles{% endblock %}
{% block contenu %}
<h1>{{ article.titre }}</h1>
<p>{{ article.contenu }}</p>
<span>{{ article.date_publication }}</span>
{% endblock %}