Oleg
Oleg

Reputation: 847

Django url NoReverseMatch error

I have next url file

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'),
    )

When I put advdetail URL I have an error

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._%+-]+)']

At the same time createadv works normal. Please help me found, where is a mistake?

Upvotes: 0

Views: 173

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599956

Your "subcategory" URL requires two arguments - category and subcategory - but you are only providing one.

Upvotes: 2

Related Questions