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 })

私のURLは次のとおりです。

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

2 に答える 2

1

リダイレクトには、異なるメソッドシグネチャがあります。

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

Djangoドキュメントのショートカットリダイレクトの例を参照してください。


コードに少し飛び込む:をredirect(to, *args, **kwargs)呼び出すresolve_url(to, *args, **kwargs)呼び出しurlresolvers.reverse(to, args=args, kwargs=kwargs)。したがって、これは間違いなく正しいです。

またはショートカットを使用する場合はargs、リストまたはkwargs辞書でラップする必要はありません。resolve_urlredirect

于 2013-02-05T20:58:58.987 に答える
0

リダイレクトで逆URLを渡します:

return redirect(
    reverse("app:submission_thanks",
    kwargs={ "data": survey.data.slug, "survey": survey.slug }))
于 2013-02-05T20:58:50.183 に答える