0
我得到一個noReverseMatch錯誤在我剛從別人拉的Django應用程序。確切的錯誤是NoReverseMatch在Django中,但它有一個名稱url模式
NoReverseMatch at /dataupload/
Reverse for ''upload'' with arguments '()' and keyword arguments '{}' not found.
'dataupload'是一個應用程序。主urls.py包含
urlpatterns = patterns('',
url(r'^dataupload/', include('dataupload.urls')),
url(r'^admin/', include(admin.site.urls))
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
的dataupload模塊在PYTHONPATH和from dataupload import urls
作品在Django的殼。該dataupload urls.py具有以下(留下一些東西出來爲簡潔起見)
urlpatterns = patterns('',
url(r'^$', HomePageView.as_view(), name='index'),
url(r'^upload/$', views.upload, name='upload'),
url(r'^upload/(?P<pk>\d+)/$', views.edit_file, name='updatefile'),
url(r'^download/(?P<file_id>\d+)/$', views.download_file, name='downloadfile'),
...
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)
模板中的那一行是
<ul class="nav navbar-nav">
<li><a href={% url 'upload' %}>Upload</a></li>
<li><a href={% url 'manage_data_list' %}>Manage Data</a></li>
正如你可以看到,有一個名爲視圖「上傳」沒有參數,它指向只接受請求對象並因此不需要參數的視圖。爲什麼這個反向查找不起作用?
你確定你正在運行正確的版本嗎?看起來這個應用程序是爲Django 1.5+編寫的(URL標記語法隨後改變),但是您運行的是早期版本。 – 2014-10-03 10:38:18
啊,我不知道有什麼區別 – sirlark 2014-10-03 10:57:51
是的,這是django版本。 Virtualenv來拯救 – sirlark 2014-10-03 11:24:38