我的应用名称是'canyonero'。我在Pypy 5.6.0上使用Django 1.11。
该应用已在settings.py中启用:
INSTALLED_APPS = [
...
'canyonero.apps.CanyoneroConfig',
...
]
我的项目级urls.py中有一条指向该应用的路径:
urlpatterns = [
...
url(r'^product/canyonero/', include('canyonero.urls', namespace='canyonero')),
...
]
我的app-level urls.py中有一个名称空间的URL要解析:
app_name = 'canyonero'
urlpatterns = [
...
url(r'^events/(?P<pk>\d)/$', EventDetail.as_view(), name='event'),
...
]
然后这个模板标签让我无法忍受悲伤:
{% extends 'common/content.html' %}
{% load static %}
<a href="{% url 'canyonero:event' pk=obj.event_id %}"></a>
我得到的错误是:
NoReverseMatch: Reverse for 'event' with keyword arguments '{u'pk': 532742}' not found. 1 pattern(s) tried: [u'product/canyonero/events/(?P<pk>\\d)/$']
532742是有效记录的有效主键(在shell中用Event.objects.get()
确认),所以不是这样。
有什么明显我在俯视吗?
答案 0 :(得分:4)
\d
匹配一位数字。您需要匹配多个数字,因此您需要\d+
:
url(r'^events/(?P<pk>\d+)/$', EventDetail.as_view(), name='event'),