[解決済み] Django を使って現在の url 名を取得する方法は?
質問
私は、現在のURLに従って動的にURLを構築する必要があります。を使用して
{% url %}
タグはそれを行うための最も簡単な方法ですが、私は新しいものを動的に生成するために、現在のURLの名前が必要です。
どのように私は現在のビューにつながるurlconfに添付されたURLの名前を取得することができますか?
EDIT : 私は、手動で
get_absolute_url
を使って手動で作ることもできますが、これは講義の一部であり、URLを作成する唯一の方法を示したいと思っているので、それは避けたいと思っています。
生徒たちは
{% url %}
. 彼らは、現在のURLに基づいてより完全なURLを生成しなければならないときに問題に直面していることを知っています。最も簡単な方法は
{% url %}
を使うことです。私たちは url という名前を持っているので
という名前が付いているので、現在のビューを呼び出した url の名前を取得する方法を知る必要があります。
編集2:もう一つのユースケースは、ベーステンプレートの一部を、ベーステンプレートに応じて異なる形で表示することです。CSSや{% block %}を使用する方法もありますが、ビュー名がリンクに一致する場合、base.htmlのメニューエントリのタグを削除することができれば、それだけで良い場合があります。
どのように解決するのですか?
この機能がいつから Django の一部になっているのか知りませんが、Django では に続く記事 が示すように、ビューで以下のように実現することができます。
from django.core.urlresolvers import resolve
current_url = resolve(request.path_info).url_name
もし、すべてのテンプレートでそれが必要なら、テンプレートリクエストを書くのが適切でしょう。
編集: DJANGOのアップデートを適用する
現在のDjangoのアップデートを踏襲しています。
Django 1.10 ( リンク )
<ブロッククオート
からのインポート
django.core.urlresolvers
モジュールからのインポートは非推奨です。
からのインポートは推奨されません。
django.urls
Django 2.0 ( リンク )
<ブロッククオート
その
django.core.urlresolvers
モジュールは削除され、代わりに新しい
の場所に移動します。
django.urls
.
よって、正しいやり方はこのようになります。
from django.urls import resolve
current_url = resolve(request.path_info).url_name
関連
-
Djangoの基本(16)。テンプレートタグの紹介とそのカスタマイズ方法
-
Django。"makemigrations "時に変更が検出されない。
-
[解決済み] Djangoのバージョンを確認する方法
-
[解決済み] Django で完全な/絶対的な URL (ドメイン付き) を取得するにはどうすればよいですか?
-
[解決済み] Django テンプレート内で現在の URL を取得する方法は?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] Django REST Framework: ModelSerializerに追加フィールドを追加する
-
[解決済み] Djangoテンプレート内でコレクションのサイズを確認するにはどうすればよいですか?
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] django のクラスベースのビューで permission_required デコレータを使用する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Django QuerySet マルチテーブル結合/条件付きピッキング/マージ
-
[解決済み】Djangoでモデルインスタンスをシリアライズする方法は?
-
[解決済み] Django の修正 管理者の複数形
-
[解決済み] Django で null を許容するユニークなフィールド
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] テーブルのフィールドから異なる値を選択する
-
[解決済み] django のテンプレートで最初の文字を大文字にする
-
[解決済み] Django 1.9 の apps.py の目的は何ですか?
-
[解決済み] Django で https 接続を非 https 接続と同じように簡単にテストするには 'runserver' を使うには?
-
[解決済み] あるdjangoアプリから新しいアプリにモデルを移行するにはどうしたらいいですか?