テンプレートに現在表示しているページのURLやパスを表示する方法を紹介します。
URLを表示する方法
以下のコードをテンプレートに書き込むとURLが表示されます。
{{ request.build_absolute_uri }}
現在表示しているページが
http://127.0.0.1:8000/sample/?key1=value1&key2=value2
の場合、
http://127.0.0.1:8000/sample/?key1=value1&key2=value2
と表示されます。
request変数はデフォルトでcontext_processorsに登録されているため、どのテンプレートでも使用できます。
パスを表示する方法
パスを表示する方法には、”URLクエリパラメーター付き”と”URLクエリパラメーター無し”の2パターンあります。
URLクエリパラメーターとは以下の様にURLの末尾に?マークを使って追記している部分(太字部分)です。https://example.com/sample/?key1=value1&key2=value2
URLクエリパラメーター付きのパスを表示したい場合
{{ request.get_full_path }}
表示しているページが
https://example.com/sample/?key1=value1&key2=value2
の場合、
/sample/?key1=value1&key2=value2
と表示されます。
URLクエリパラメーター無しのパスを表示したい場合
{{ request.path }}
表示しているページが
https://example.com/sample/?key1=value1&key2=value2 の場合、
/sample/
と表示されます。
補足
HttpRequestオブジェクトには様々な機能や情報が用意されています。
これらを使えばサーバーのホスト名や、サーバーのポート、スキーム (通常はhttpかhttps)などを表示することもできます。
{{ request.META.SERVER_PORT }}
{{ request.META.SERVER_NAME }}
{{ request.scheme }}
コメントを残す