Skip to main content
 首页 » 编程设计

python之Django NoReverseMatch 错误,美元符号添加到 url 模式

2025年05月04日25JustinYoung

这个错误让我很生气。

urls.py:

urlpatterns = patterns('', 
    url(r'^$', views.index, name='home'), 
    url(r'^(?P<show_id>\d+)/$', views.show, name='show'), 
) 

index.html:

{% for s in shows %} 
    <li><a href="{% url 'serialcharter:show' show_id=2 %}">{{ s.name }}</a></li> 
{% endfor %} 

错误:

NoReverseMatch at / 
 
Reverse for 'show' with arguments '()' and keyword arguments '{u'show_id': 2}' not found. 1 pattern(s) tried: [u'$(?P<show_id>\\d+)/'] 

我假设问题出在模式开头的美元符号,但正如您在我的 urls.py 中看到的那样,有一个插入符号,而不是美元符号。我尝试多次重启服务器,更改 url 以查看更改是否反射(reflect)在错误消息中(它们是),使用位置参数而不是命名,没有任何效果。
为什么、在哪里以及如何将美元符号添加到 url 模式中?这真的是问题所在吗?

请您参考如下方法:

确保包含 serialcharter url 的正则表达式中没有美元。