关键字参数的Django URL Conf

时间:2013-09-30 04:22:45

标签: django django-urls

以下网址配置有什么问题:

  url(
                           r'^outgoing-recommendations(?P<entry>\w+)/$',
                           login_required(outgoing_messages),
                           name='outgoing-recommendations',
                       ),

这是调用:

return redirect('outgoing-recommendations', kwargs={'entry':'outgoing'})

这是视图功能:

def outgoing_messages(request,entry):
    user = User.objects.get(pk=request.session['user_id'])

我收到以下错误:

使用参数'()'和关键字参数'{'kwargs':{'entry':'outgoing'}}'找不到'outgoing-recommendations'。

1 个答案:

答案 0 :(得分:1)

网址应如下所示

url(r'^outgoing-recommendations/(?P<entry>\w+)/$',login_required(outgoing_messages), name='outgoing-recommendations'),

因此,您忘记了关于传出建议的/

此外,您应该像这样打电话给redirect

return redirect('outgoing-recommendations', entry='outgoing')

并取消kwargs={}部分,因为正在发生的事情是你试图用它的嵌套kwargs发送密钥参数kwargs

但我认为你真正想要的是这个

return redirect(reverse('outgoing-recommendations', kwargs={'entry':'outgoing'}))