在我的核心urls.py中,我有
url(r'^student/', include('studentportal.urls')),
在studentportal.urls中,我有这个网址
url(r'^project/(?P<project_id>[0-9])/edit/$', views.editproject, name='editproject'),
url(r'^project/(?P<project_id>[0-9])/upload/$', views._upload, name='upload_document'),
url(r'^project/(?P<project_id>[0-9])/$', views.viewproject, name='viewproject'),
url(r'^download/(?P<document_id>[0-9])/', views.download, name='download_document'),
在此行渲染模板时会弹出NoReverseMatch错误
<p><a class="btn btn-default" href="{% url 'viewproject' p.id %}" role="button">View details »</a></p>
检查这些网址
2 pattern(s) tried: ['student/project/(?P<project_id>[0-9])/$', '$project/(?P<project_id>[0-9])/$']
我很确定错误是我使用网址的方式而不是视图,也不是模板。此外,在urlpatterns末尾排除'$'会导致NoReverseMatch错误。即使我已经阅读了关于urlpatterns的django文档。
'''表示行的开头
'''表示网址应该在这里结束
'(?P&lt; named_variable&gt;)'用于从网址中捕获变量。
那么为什么当第一个模式与'viewproject' with arguments '('10',)'
匹配时,模式不匹配?
答案 0 :(得分:3)
要匹配非个位数字,请更改为:
url(r'^project/(?P<project_id>[0-1000])/edit/$
或
url(r'^project/(?P<project_id>[0-9]+)/edit/$