Django 反向工作,但重定向失败

Django 反向工作,但重定向失败,django,Django,这些文件我读了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"

这些文件我读了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 })
我的网址是:

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

在重定向中传递反向url:

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

重定向具有不同的方法签名:

redirect("app:submission_thanks", data=survey.data.slug, survey=survey.slug)
参见Django文档中的


稍微深入了解一下代码:
重定向(to,*args,**kwargs)
调用
resolve\u url(to,*args,**kwargs)
哪个调用
urlresolvers.reverse(to,args=args,kwargs=kwargs)
。所以这绝对是正确的

使用
resolve\u url
重定向
快捷方式时,不需要将
args
包装在列表中,也不需要将
kwargs
包装在字典中