質問: Django(Python)でwebサイトを作成しています。 デザインは、Bootstrapを使おうとしています。 サイトの各ページの上の方にナビゲーション部分を作成しようとしています。 ナビゲーション部分には、Home,News,Informationといったタブが並び、 そのページを表示をしている時は、そのタブがアクティブになるというものです。 (例えば、Newsページが表示されているときは、Newsというタブがアクティブになっている。) このような場合、今までは、各テンプレートファイル全てに同じものを毎回記載していました。 しかし、どこか修正したくなった場合、それら全てに修正をかけなければならなくなるので、 各テンプレートファイルが共通して読み込む、base.htmlという元のテンプレートファイル一つだけに書き込めば、 対応できるようにできないかと思いました。 しかし、どのページが表示されているかによって、どのタブがアクティブになるべきかが決まるので、 やはり各ページに記載するしかないのでしょうか。 このページが開かれている時は、このタブがアクティブになるといった仕様にすることはできるのでしょうか。 こういうものは、各ページ毎に記述するのが一般的なのであれば、今まで通りそうしようと思いますが、ひょっとしたら何か方法があるのではないかと思い、質問投稿しました。 ご存知の方、ご教示いただければ幸いです。 よろしくお願いします。
回答: テンプレートタグの`if`や`with`を使うと思います。 > > お題:A.html、B.html の2つで、hoge.html というテンプレートを使い回している(=includeしている)として、ページタイトルをAとBで異なる物にしたい。タイトルは固定的な文字列なので、ハンドラーから渡すんじゃなく、テンプレート内で定数のように定義しておきたい。 > > テンプレート内で変数に代入したい - Rails etc... Memo > > > > > {% if param.status == 1 %} > > > > > > {% else %} > > > > {% endif %} > > Django Templateのif-elseを短く書く - Qiita > > >