web-dev-qa-db-ja.com

django表示にリダイレクト

何かをしたいビューがあり、成功メッセージで別のビューにリダイレクトします。リダイレクトしたいメソッドのシグネチャは

quizView(request, quizNumber, errorMessage=None, successMessage=None): 

そして、そのビューにリダイレクトする私の試みは次のようになります:

return redirect(quizView, quizNumber=quizNumber, errorMessage=None, successMessage="Success!")

名前付きパラメーターと名前なしパラメーターのほとんどすべての組み合わせを試してみましたが、望みどおりの結果を得ることができません。この作品を作る方法はありますか?

また、最初のビューで2番目のビューを返すだけでしたが、URLはリダイレクトされたように表示されるのではなく、古いビューの場所のままです。

ありがとう!

26
user1056805

URLに名前を付けていないため、view関数へのパス全体を使用する必要があります。さらに、そのURLはerrorMessageまたはsuccessMessageパラメーターを受け取らないため、reverse呼び出しにそれらを配置すると失敗します。これはあなたが望むものです:

return redirect('quizzes.views.quizView', quizNumber=quizNumber)
35
Daniel Roseman

https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect にある例2を試すことができますか

  • 指定されたビューで「リバース」を行うことを確認してください。
  • ビュー名は単一引用符で囲む必要があります/