0

ここにいる誰かが ASP.NET の専門家であれば、ユーザー コントロールとは何を意味するかわかるかもしれません。代わりにdjangoで同様のものを作成したいと思います。

したがって、私の問題は、Web サイトに複数のページがあることですが、すべてのページに検索バーを表示する必要があります。この検索バーを操作するにはviews.pyが必要なので、単純な方法はできません

{% include 'something.html' %}

したがって、どうすればそれを行うことができるかを誰かが提案できますか?

4

2 に答える 2

1

やりたいことを達成するには、いくつかの方法があります。

コンテキスト プロセッサ

テンプレートタグ

コンテキスト プロセッサは、読み込まれるテンプレートに関係なく、テンプレート コンテキストを値で拡張できます。これらは Rails のフィルターに似ています。

テンプレート タグは、コンテキスト プロセッサと同様に、Python で実行できることは何でも実行できますが、テンプレート レベルで実装されます。

すべてのテンプレートに何かを含める必要がある場合、これを実現する最も簡単な方法の 1 つは、渡された値も受け入れることができる包含タグを使用することです。包含タグは、MasterPage とも呼ばれる最高レベルのテンプレートに実装できます。ブロックに入れてオーバーライドしない限り、継承チェーンにそのテンプレートを含むすべてのページに表示されます。

それがすべてのページに含めたいだけで、処理を行う必要がない場合は、必要なコードを最上位のテンプレートに配置し、後続のテンプレートにそれを継承させることができます。

通常、すべてのテンプレートが継承する "base.html" テンプレートがあります。すべてのページに何かを入れる必要がある場合は、そこに置きます。デフォルトでそこに置きたいが、後続のテンプレートで拡張できるようにしたい場合は、ブロックに配置します。そのブロックを使用すると、デフォルトのコンテンツを含めたり上書きしたりできます。

于 2013-02-15T14:46:54.103 に答える