这个问题看似简单,在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
导致反向错误的原因是什么?参数中的空格可能不被允许吗?
答案 0 :(得分:4)
问题是“英国”与正则表达式[-\w]+
不匹配。如果您还想匹配空格,则应将正则表达式更改为[-\w\ ]+
。例如:
url(r'^(?P<country>[-\w\ ]+)/$', CountryListView.as_view(), name='list_by_country')
您还可以选择匹配\s
而不是仅匹配一个空格字符。