4

djangoテンプレートシステム、特にテンプレート継承でロードを使用してロードされたカスタムタグの範囲は何ですか?

テンプレート階層のツリーに同じカスタム タグを効果的にロードするにはどうすればよいでしょうか。ドキュメントでどちらの情報も見つかりませんでした。どんなポインタも役に立ちます。

ありがとう。

4

1 に答える 1

7

私もこれについて疑問に思い、ドキュメントが不足していることに気付いたので、自分でテストすることにしました。

django 1.4 の時点での答えは次のとおりです。読み込まれたカスタム タグのスコープは、読み込まれたファイルに厳密に制限され ( を使用{% load %})、それ以外はまったく制限されません

カスタム タグを使用する次の試みは失敗しました:

  • テンプレート A とextendテンプレート B:
    • AにロードしてBで使用してみる
    • A にロードし、ブロック内の B で使用しようとする
    • スーパーの有無にかかわらず、A のブロックにロードし、B の同じブロックで使用を試みます
  • テンプレート A とincludeテンプレート B:
    • AにロードしてBで使用してみる
    • A にロードし、明示的に B に渡そうとします。with context
  • `{% ssi ... parsed %} を使用したテンプレート B を含むテンプレート A
    • AにロードしてBで使用してみる

ええ、厳密にはファイルごとのことです (これは、遠くからミステリー タグを検索することを不可能にするため、良いことです。もちろん、グローバル ローダーをいじって意図的にそうしない限り (そうすべきではありません))。 )

于 2012-08-16T18:36:24.197 に答える