如何修复NoReverseMatch在/

问题描述 投票:-1回答:3

我收到错误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'),
]```


python django
3个回答
2
投票

有一个错字

更改此

<a href="{% url 'article-detail' pk=article.pk %}"></a>

<a href="{% url 'article-detail' pk=articles.pk %}"></a>

0
投票

你需要这样做:

<a href="{% url 'article-detail' articles.pk %}"></a>

无需pk=和你有一个错字


0
投票

如果你读了错误信息,你会发现,reverse被称为与空字符串“PK”值,这意味着模板系统无法解析article.pk(=>要么有一个名叫“文章”或有没有上下文变量是一个,但它并没有一个“PK”属性或键或方法)。然后,如果你重新阅读你的模板代码,你可以看到你被点名了你的for循环迭代变量articles(复数),而不是article(单数),因此错误。

其结论是1 /你应该总是仔细阅读错误消息,2 /,一个良好的,合理的和一致的命名避免了一大堆错别字...

© www.soinside.com 2019 - 2024. All rights reserved.