【问题标题】:Django URL Conf For Keyword Argument关键字参数的 Django URL Conf
【发布时间】:2013-10-05 20:32:45
【问题描述】:

下面的 URL conf 有什么问题:

  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' 的反向操作。

【问题讨论】:

    标签: django django-urls


    【解决方案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'}))
    

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 2023-04-01
      • 2012-12-11
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      相关资源
      最近更新 更多