Django:找不到反向>模板中的{%url%}

时间:2013-08-21 01:56:39

标签: django url arguments reverse

这个问题看似简单,在SO中有多次描述,但我仍然无法弄清楚为什么它在我的情况下不起作用。

所以,我在 urls.py

中声明了一个网址
urlpatterns = patterns('',
    url(r'^(?P<country>[-\w]+)/$', CountryListView.as_view(), name='list_by_country'),)

并在我的模板中我正在调用网址

<a href="{% url 'list_by_country' country.country__name %}" >{{ country.country__name }}</a>

但是,我收到错误消息表示网址无法撤消

Reverse for 'list_by_country' with arguments '(u'United Kingdom',)' and keyword arguments '{}' not found

导致反向错误的原因是什么?参数中的空格可能不被允许吗?


1 个答案:

答案 0 :(得分:4)

问题是“英国”与正则表达式[-\w]+不匹配。如果您还想匹配空格,则应将正则表达式更改为[-\w\ ]+。例如:

url(r'^(?P<country>[-\w\ ]+)/$', CountryListView.as_view(), name='list_by_country')

您还可以选择匹配\s而不是仅匹配一个空格字符。