DjangoURLディスパッチャーのメソッドに関するドキュメントを読み終えました。reverse()
いつ役に立ちますか?
ありがとうございました!
この関数はドライ原則をサポートしています。アプリ全体でURLをハードコーディングしないようにします。URLは1つの場所で定義する必要があり、1つの場所(URL conf )のみで定義する必要があります。その後、あなたは本当にその情報を参照しているだけです。
ビューへのパス、またはurl confからreverse()
のパラメーターのいずれかを指定して、ページのURLを指定するために使用します。page_name
テンプレートで。を使用して実行しても意味がない場合に使用し{% url 'my-page' %}
ます。
この機能を使用できる場所はたくさんあります。私がそれを使用していることがわかった場所の1つは、ビュー内のユーザーをリダイレクトするときです(多くの場合、フォームの処理が成功した後)-
return HttpResponseRedirect(reverse('thanks-we-got-your-form-page'))
テンプレートタグを作成するときにも使用できます。
私が使用した別の時間reverse()
は、モデルの継承でした。親モデルにを持っていましたが、それらの親オブジェクトのいずれかから、それに関連付けられた子オブジェクトのListView
に取得したいと考えていました。子の存在を識別し、それが使用しているURLを返す関数を親DetailView
にアタッチしました。get__child_url()
DetailView
reverse()
reverse()関数は、ビューでDRY準拠のURLを実現するためにdjangoで使用されます。ここでより明確な説明を見つけてください
これは、コード内のURLへの引数とともに名前でビューを解決する場合に使用されます。{% url %}
これは、テンプレートタグのバックエンドです。