我收到错误NoReverseMatch在/当我想我的文章链接到文章详细信息页面。
NoReverseMatch在/反向关于“物品细节”与参数“(”“)”未找到。 1个图案(多个)尝试:[ '(ΔP[0-9] +)文章\ / \ / $']
{% for articles in object_list %}
<div class="article">
<div class="article-title">
<a href="{% url 'article-detail' pk=article.pk %}"></a>
<p class="p-title">{{ articles.title }}</p>
</a>
</div>
<div class="article-content">
<p>{{ articles.content }}</p>
</div>
</div>
<hr>
{% endfor %}
path('', views.HomeView.as_view(), name='index'),
path('article/create/', views.ArticleCreateView.as_view(), name='article-create'),
path('article/<int:pk>/update/', views.ArticleUpdateView.as_view(), name='article-update'),
path('article/<int:pk>/', views.ArticleDetailView.as_view(), name='article-detail'),
]```
有一个错字
更改此
<a href="{% url 'article-detail' pk=article.pk %}"></a>
至
<a href="{% url 'article-detail' pk=articles.pk %}"></a>
你需要这样做:
<a href="{% url 'article-detail' articles.pk %}"></a>
无需pk=
和你有一个错字
如果你读了错误信息,你会发现,reverse
被称为与空字符串“PK”值,这意味着模板系统无法解析article.pk
(=>要么有一个名叫“文章”或有没有上下文变量是一个,但它并没有一个“PK”属性或键或方法)。然后,如果你重新阅读你的模板代码,你可以看到你被点名了你的for循环迭代变量articles
(复数),而不是article
(单数),因此错误。
其结论是1 /你应该总是仔细阅读错误消息,2 /,一个良好的,合理的和一致的命名避免了一大堆错别字...