Python Django:NoReverseMatch用于HttpResponseRedirect与kwargs
我得到以下错误: NoReverseMatch at/updatebooking/ 与“common.views.myview”相反 使用参数“()”和关键字参数“{'msg':“hello”,“case”: 未找到“success”} common/views.pyPython Django:NoReverseMatch用于HttpResponseRedirect与kwargs,python,django,Python,Django,我得到以下错误: NoReverseMatch at/updatebooking/ 与“common.views.myview”相反 使用参数“()”和关键字参数“{'msg':“hello”,“case”: 未找到“success”} common/views.py def view1(request): ... return HttpResponseRedirect(reverse('common.views.view2', kwargs= {"msg":
def view1(request):
...
return HttpResponseRedirect(reverse('common.views.view2', kwargs= {"msg":"hello","case":"success"}))
def view2(request,msg=None,case=None):
...
url.py
url(r'^test1/$','common.views.view1',name='my_view1'),
url(r'^test2/$','common.views.view2',name='my_view2'),
这一行reverse('common.views.view2',kwargs={“msg”:“hello”,“case”:“success”})
正在抛出错误
仅当我使用kwargs
时,错误才会出现。以下代码起作用:
return HttpResponseRedirect(reverse('my_view2'))
return HttpResponseRedirect(reverse('common.views.view2'))
请帮我解决这个问题。您的url没有
msg
或case
参数,这就是Django找不到它的原因。请参见本例中的参数slug
:
url(r'^(?p[^/]+)/$,'test.views.detail',name=“test detail”)
我相信您正在尝试将消息/通知传递给另一个视图。如果是这种情况,您应该检查。当您使用
reverse
和kwargs
参数时,django尝试查找参数化url路由。在您的示例中,匹配路径类似于
url(r'^test2/(?P<msg>\w+)/(?P<case>\w+)$','common.views.view2',name='my_view2')
url(r'^test2/(?P\w+)/(?P\w+)$,'common.views.view2',name='my_view2')
有关更多详细信息,请参阅和文档。不幸的是,URLDispatcher和reverse手册对于这个特殊特性都有点含糊不清