![](/img/trans.png)
[英]Django HttpResponseRedirect(reverse('url')) Returns NoReverseMatch Error
[英]Django : NoReverseMatch for HttpResponseRedirect with kwargs
我收到以下錯誤:
NoReverseMatch at / updatebooking /
使用參數'()'和關鍵字參數'{'msg':“hello”,'case':'success'}'找不到'common.views.myview'。
通用/ 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'))
請幫我解決這個問題。
當您使用kwargs
參數reverse
,django會嘗試查找參數化的URL路由。 在您的示例中,匹配路由類似於
url(r'^test2/(?P<msg>\w+)/(?P<case>\w+)$','common.views.view2',name='my_view2')
有關更多詳細信息,請參閱reverse
和URLDispatcher
文檔。 不幸的是,URLDispatcher和反向手冊都對這個特殊功能有點神秘。
你的url沒有msg
或case
參數,這就是Django找不到它的原因。 請參閱此示例中的paramenter slug
:
url(r'^(?P<slug>[^/]+)/$', 'test.views.detail', name="test-detail")
我相信您正在嘗試將消息/通知傳遞給另一個視圖。 如果是這種情況,您應該檢查消息框架 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.