私のURLConfには、URLをきちんと名前を付けて、逆引き参照をしてすべてをDRYにしておくことができます。djangoテンプレートは、その名前付きURLを見つけることができますか、またはどのテンプレートがそれを拡張しているかを基本テンプレートが知ることができますか?
私のすべてのテンプレートは、汎用テンプレートbase.html
を拡張しています。 base.html
では、多くのHTMLフレームワークの中で、私はログインフォームを表示しています。
また、Djangoの提供するauth_views.login
ビューを使用して、私のカスタムテンプレートlogin.html
を表示するビューもあります。このテンプレートは、他のすべてのテンプレートと同様に、base.htmlテンプレートを拡張します。
この場合、base.html
テンプレートはログインフォームを表示しません(login.html
テンプレートはすでにログインフォームを表示しています)。これを行うには、base.html
は、それがlogin.html
を拡張するために使用されていることを知っているか、base.htmlに拡張された名前付きURLの名前が'myapp-login'
であることを知る必要があります。
これを行う方法を提案できますか?私はsuppress_header_login_form
varを含む特別な文脈でauth_views.login
と呼ぶ私自身の見解を書くことを考えています。このvarに基づいて、base.html
テンプレートはログインフォームを抑制することができます。しかし、これを達成するためのより良い方法があるかどうかを確認しようとしています。
たぶん、この質問はあなたを助けるかもしれない:http://stackoverflow.com/questions/2882490/get-the-current-url-within-a-django-template – Razvi
非常に近いです。しかし、私の問題は、この特定のテンプレートがTemplateViewから呼び出されることです。そのような場合、リクエストはテンプレートに渡されず、URLを取得する方法はありません。 –