1

Djangoタグに「takes_context=True」を指定してコンテキストにアクセスすることがあります。通常、リクエストにアクセスします。

しかし、パフォーマンスへの影響はありますか。

テンプレートがどのように機能するかについての私のメンタルモデルは、タグ関数がテンプレートを表すノードをアセンブルし、その後、これらのノードがノードを再作成したり、テンプレートを再解析したりせずにコンテンツをレンダリングできることです。

しかし、確かに、コンテキスト内の何かに応じて、タグ関数が異なるノードを返すようにできる場合は、コンテキストが異なるたびに(つまり、毎回)ノードを再作成する必要があります。

それか、最初に取得するノードに固執している場合は、コンテキスト内の何かに基づいてノードを返すべきではありません(この場合、ポイントは何ですか?)。

誰かが私のためにこれを片付けることができますか?私はDjango1.4.2を使用しています。

4

1 に答える 1

1

テンプレートがロードされると、ノードが作成されます。レンダリングされると、コンテキストはノードのrenderメソッドに渡されるだけです。唯一の違いは、結果のsimple_tagコードが関数にコンテキストを渡すようにすることです。したがって、を使用してもパフォーマンスに影響はありません。takes_contextNode.rendertakes_context

于 2012-12-16T18:03:26.837 に答える