【发布时间】:2014-02-02 15:55:18
【问题描述】:
我要为这个错误发疯了。
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 以查看更改是否反映在错误消息中(它们是),使用位置参数而不是命名,没有任何效果。
为什么,在哪里以及如何将美元符号添加到 url 模式?真的是这个问题吗?
【问题讨论】:
-
美元符号不是问题; Django 根本没有 找不到您的路径,因此正则表达式是什么并不重要(但乍一看似乎还可以)。您确定您在设置中启用了
serialcharter应用程序,并且您发布的urls.conf文件位于serialcharter应用程序的目录中吗? -
确保包含 serialcharter url 的正则表达式中没有一美元。
-
@Alasdair,我的救星!这正是问题所在。谢谢!