没有找到“带有参数和关键字参数”的反向

时间:2013-07-15 14:22:56

标签: django httpresponse reverse

我在light_shop应用中有以下观点:

def order_list(request, error_message):
    context = {}
    context['type'] = 'order-list'
    context['error_message'] = error_message
    update_context(request, context, add_order_list=True)
    return render(request, 'light_shop/order_list.html', context)

def add_to_list(request, prd_id):
    add_product_to_list(request, prd_id)
    return HttpResponseRedirect(reverse('light_shop.views.order_list', args=('test_error',)))

这是urls.py

urlpatterns = patterns('light_shop',
    ...
    url(r'^add-to-list/(?P<prd_id>\d+)/$', 'views.add_to_list'),
    url(r'^show-list/()$', 'views.order_list'),
    ...

但是我在add_to_list第二行收到错误:Reverse for 'light_shop.views.order_list' with arguments '('test_error',)' and keyword arguments '{}' not found.

我甚至在order_list的url模式中测试命名参数。 (例如url(r'^show-list/(?P<error_message>)$', 'views.order_list')并将反向函数更改为reverse('light_shop.views.order_list', kwargs={'error_message':'error_message'}))但又发生了同样的错误。

我正在使用Django 1.5,我看这个页面进行文档化,我真的很困惑是什么问题: https://docs.djangoproject.com/en/1.5/topics/http/urls/

1 个答案:

答案 0 :(得分:3)

问题在于网址格式

url(r'^show-list/()$', 'views.order_list'),

似乎不完整。

将其更新为(基本上,指定Named Group

url(r'^show-list/(?P<error_message>[\w_-]+)$', 'views.order_list'),