6

サンドボックス化されたJinja2環境を使用して、テンプレートのカスタマイズを処理しようとしています。

DictLoaderとFunctionLoaderの両方を使用してみましたが、同様の問題が発生し続けています...現在は主にFunctionLoaderに関心があります。

includeまたはimport別のテンプレート(マクロを含む)を管理できません。FuctionLoaderの指定された「ロード」関数は、参照されるテンプレートに対して呼び出されることはありません。

私は運が悪かったので試しました:

  • 基本的な「import」および「include」構文を使用して、インポートがローダーにヒットすることを期待するだけです。
  • ローダーをコンテキストに渡し、そのようにプルする可能性があるかどうかを確認します
  • テンプレートのdictをコンテキストに渡し、それが引き込まれることを期待します
  • さらにいくつかのこと、すべて私は忘れていました

これをサポートする方法が必要だと確信しています-誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

17

インポート構文では、引用符で囲まれた文字列を使用する必要があります。

悪い:

{% import utils %}
{% import utils.macros as macros %}
{% from utils.macros import macro_1 , macro_2 %}

良い:

{% import "utils" as utils %}
{% import "utils.macros" as macros %}
{% from "utils.macros" import macro_1 , macro_2 %}

引用符で囲まれた文字列は、に渡されるFunctionLoaderか、キーとして使用されます。DictLoader

于 2013-03-12T17:27:14.440 に答える