【问题标题】:Django NoReverseMatch error, dollar sign added to url patternDjango NoReverseMatch 错误,将美元符号添加到 url 模式
【发布时间】: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,我的救星!这正是问题所在。谢谢!

标签: python django url


【解决方案1】:

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

【讨论】:

  • 经过 3 个小时的搜索和尝试,这是否解决了我的问题。 +1:D
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2017-03-14
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2015-07-10
相关资源
最近更新 更多