用kwargs无法解决Django“NoReverseMatch”异常

时间:2010-11-06 01:23:58

标签: python django django-views

我无法让Django反向解析以下命名的url -

URLconf条目:

url(r'^shotmanager/(?P<shotid>\d+)/$', 'ctac.views.shotManager', {'message': "", 'errors': []}, name = 'shot-manager')

HttpResponseRedirect调用:

return HttpResponseRedirect(reverse("shot-manager", kwargs={'shotid': id, 'message': s, 'errors': errorList}))

我在Django文档中看不到任何暗示我不能在网址和网址中的字典条目中混合使用kwargs的内容。由于某种原因,如果我只发送“shotid”,反向将解决罚款。

我已经访问了以下帖子

Reversing Django URLs With Extra Options

并研究过它。目前还不清楚它是否已经解决。

1 个答案:

答案 0 :(得分:4)

reverse返回一个填充了您在args或kwargs中传递的值的网址。但是您尝试生成的网址没有message的空间。它会在生成的URL中出现在哪里?

编辑以回复评论 如果要在页面视图之间传递消息,则执行此操作的正确方法不是通过URL,而是通过会话。 Django甚至包含messaging framework来为您管理。