簡體   English   中英

Django-URL的反向解析引發'NoReverseMatch'

[英]Django - Reverse resolution of URL throws 'NoReverseMatch'

我在urls.py中有url(r'^topics/(?P<topic_id>\\d+)/$', views.topic, name='topic')但當我嘗試轉到localhost:8000 / topics / 1時它告訴我它嘗試了一種模式: topics/(?P<topic_id>**\\\\**d+)/$我認為這將是topics/(?P<topic_id>**\\**d+)/$

我正在使用一本名為《 Python崩潰課程》 (第1版)的書(第18章)。 這是將Django 1.11與Python結合使用的本地服務器。 我已經嘗試過很多重新格式化url模式的操作,但是我是新手,所以我不知道該怎么辦。

...
urlpatterns = [
    url(r'^$', views.index, name='index'),

    # Show all topics.
    url(r'^topics/$', views.topics, name='topics'),

    # Detail page for a single topic.
    url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
]

我希望它會以正確的頁面彈出,但是它總是顯示' NoReverseMatch at / topics / 01 / '

因此,您已經忘記了 URL 末尾的斜杠 ,因此為什么不匹配斜杠

您可以從正則表達式中刪除斜杠,但這可以解決問題:如果放置斜杠,它將不起作用。

我想您可以使用/?$結束模式,但這是一個更可靠的解決方案: Jiaaro的回答:django urls不帶斜杠不會重定向

基本上:

在settings.py文件中檢查您的APPEND_SLASH設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM