【问题标题】:Django url NoReverseMatch errorDjango url NoReverseMatch 错误
【发布时间】:2017-03-14 15:35:58
【问题描述】:

我有下一个 url 文件

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 URL 时出现错误

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工作正常。请帮我找到,哪里出错了?

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

    您的“子类别”网址需要两个参数 - 类别和子类别 - 但您只提供一个。

    【讨论】:

    • 如果您能看到我的请求 URL:127.0.0.1:8000/callboard/advdetail/38。就我而言,我使用仅包含一个参数的“advdetail”URL。为什么 Django 尝试反转我不明白的“子类别”。
    • 感谢您的想法。我在“advdetail”模板中发现了一个错误。
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多