2

base_template.htmlコンテキスト変数を使用する がありますmy_context_var。他のすべてのテンプレートは、この基本テンプレートを拡張しています。これらの質問の1つに答えるのを手伝ってもらえますか? (それらは、同じ根本的な問題を別の方法で見ているだけです)

  1. my_context_varすべての派生テンプレートで利用できるようにするにはどうすればよいですか?my_context_var特定のビューをオーバーライドする方法を許可します。

  2. my_context_varその変数がまだ存在しない場合にのみ、テンプレートコンテキストに挿入するにはどうすればよいですか。

基本的に、コンテキスト変数の setdefaults() 機能を探しています。それが役立つ場合は、my_context_var基本的に私のサイトのほとんどのページで利用できる空白の検索フォームです。フォームと結果の両方を表示する 1 つのページでオーバーライドする必要があります。現在の問題は、その結果ページでも空白のフォームが表示され続けることです。

4

3 に答える 3

1

いくつかのオプションがあります。

独自の RequestContext を作成し、サイトで必要なすべての変数を含めることができます:ドキュメント

または、テンプレート タグを作成して、任意のテンプレートでアクセスすることもできます:ドキュメント

于 2012-08-09T02:05:01.207 に答える
0

テンプレート内で変数を設定する場合 (ただし、まだ存在しない場合のみ)、次のように動作するはずです。

{% with my_context_var=my_context_var|default:"Value you want to set it to" %}
    {# The variable is accessible within then with block #}
    {{ my_context_var }}
{% endwith %}
于 2013-05-10T00:59:04.513 に答える
0

すべてのビューに適用する必要があるため、最適なオプションはカスタム コンテキスト プロセッサを作成することです。テンプレートタグには、この変数が必要なすべての場所に含める必要があるという欠点があります。RequestContext私の意見では、DAが述べたように独自のものを作成するのはやり過ぎです。

于 2012-08-09T04:11:11.373 に答える