2013-02-05 118 views
0

我已閱讀5次文檔,我看不到這裏有什麼缺失。反向工程,但重定向失敗

我有一種情況,reverse()可以正常工作,但傳遞給redirect()的相同參數會失敗,並顯示地址無法解析的錯誤。

reverse("app:submission_thanks", kwargs={ "data": survey.data.slug, "survey": survey.slug }) 

redirect("app:submission_thanks", kwargs={ "data": survey.data.slug, "survey": survey.slug }) 

我的網址是:

return redirect(
    reverse("app:submission_thanks", 
    kwargs={ "data": survey.data.slug, "survey": survey.slug })) 

回答

1

重定向有不同的方法簽名:

redirect("app:submission_thanks", data=survey.data.slug, survey=survey.slug) 

shortcut redirect examples在Django的

url(r'^(?P<data>[-\w]+)/(?P<survey>[-\w]+)/thanks/$', 
     TemplateView.as_view(template_name="pasteur/submission_thanks.html"), 
     name="submission_thanks", 
    ), 
0

通在重定向逆轉網址文檔。


潛水到代碼一點:redirect(to, *args, **kwargs)電話resolve_url(to, *args, **kwargs)這就要求urlresolvers.reverse(to, args=args, kwargs=kwargs)。所以這是絕對正確的。

使用resolve_urlredirect快捷方式時,您不需要包裝在一個列表中argskwargs在字典中。