我收到以下错误:
/ updatebooking /
的NoReverseMatch'common.views.myview'的反转 使用参数'()'和关键字参数'{'msg':“hello”,'case': '成功'}'找不到。
公共/ views.py
def view1(request):
...
return HttpResponseRedirect(reverse('common.views.view2', kwargs= {"msg":"hello","case":"success"}))
def view2(request,msg=None,case=None):
...
urls.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'))
请帮我解决这个问题。
答案 0 :(得分:4)
当您使用reverse
kwargs
参数时,django会尝试查找参数化的网址路径。在您的示例中,匹配路由类似于
url(r'^test2/(?P<msg>\w+)/(?P<case>\w+)$','common.views.view2',name='my_view2')
有关详细信息,请参阅reverse
和URLDispatcher
文档。不幸的是,URLDispatcher和反向手册都对这个特殊功能有点神秘。
答案 1 :(得分:1)
您的网址没有msg
或case
参数,这就是Django无法找到的原因。请参阅此示例中的参数中心slug
:
url(r'^(?P<slug>[^/]+)/$', 'test.views.detail', name="test-detail")
我相信您正在尝试将消息/通知传递给另一个视图。如果是这种情况,您应该检查the messages framework。