2016-11-01 118 views
0

我下一個URL文件Django的URL NoReverseMatch錯誤

urlpatterns = patterns('callboard', 
    url(r'^createadv/', 'views.createadv', name='createadv'), 
    url(r'^editadvert/(?P<adv_id>\d+)/$', 'views.editadvert', name='editadvert'), 
    url(r'^advdetail/(?P<pk>\d+)/$', 'views.advdetail', name='advdetail'), 

    url(r'^',ProductListView.as_view() , name='callboard'), 
    url(r'^product/(?P<category>[0-9A-Za-z._%+-]+)', ProductListView.as_view(), name='category'), 
    url(r'^product/(?P<category>[0-9A-Za-z._%+-]+)/(?P<subcategory>[0-9A-Za-z._%+-]+)', ProductListView.as_view(), name='subcategory'), 
    url(r'^notes/', 'views.notes', name='notes'), 
    url(r'^get_subcategory/(?P<category_id>[0-9]+)/$', 'views.get_subcategory', name='get_subcategory'), 
    url(r'^get_attribute_form/(?P<subcategory_id>[0-9]+)/$', 'views.get_attribute_form', name='get_attribute_form'), 
    ) 

當我把advdetail網址我有一個錯誤

NoReverseMatch at /callboard/advdetail/38/ 
Reverse for 'subcategory' with arguments '('mototransport',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['callboard/product/(?P<category>[0-9A-Za-z._%+-]+)/(?P<subcategory>[0-9A-Za-z._%+-]+)'] 
Request Method: GET 
Request URL: http://127.0.0.1:8000/callboard/advdetail/38/ 
Django Version: 1.8.15 
Exception Type: NoReverseMatch 
Exception Value:  
Reverse for 'subcategory' with arguments '('mototransport',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['callboard/product/(?P<category>[0-9A-Za-z._%+-]+)/(?P<subcategory>[0-9A-Za-z._%+-]+)'] 

同時createadv工作正常。請幫我看看,哪裏出錯?

回答

2

您的「子類別」網址需要兩個參數 - 類別和子類別 - 但您只提供一個參數。

+0

如果您能看到我的請求URL:http://127.0.0.1:8000/callboard/advdetail/38/。在我的情況下,我使用只包含一個參數的「advdetail」URL。爲什麼Django嘗試顛倒'子類別'我不明白。 – Oleg

+0

感謝您的想法。我發現它出現在「advdetail」模板中的錯誤。 – Oleg