无法解决Django "NoReverseMatch" 异常及kwargs
我在使用Django的时候,遇到了一个问题,就是无法正确解析下面这个命名的URL。
这是URL配置的内容:
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的文档里没有找到任何说明,表示我不能在URL中混合使用关键字参数和字典条目。奇怪的是,如果我只传递“shotid”,reverse函数就能正常解析。
我已经查看了以下的讨论:
并且对此进行了研究。但不清楚这个问题是否已经解决。
1 个回答
4
reverse
函数会根据你传入的参数生成一个完整的 URL。但是你想生成的这个 URL 并没有为 message
留出位置。那么这个信息要放在哪里呢?
根据评论的编辑
如果你想在不同的页面之间传递消息,正确的方法不是通过 URL,而是通过会话(session)。Django 还提供了一个 消息框架 来帮助你管理这些消息。