2012-10-18 44 views
1

我有時通過爲Django標籤提供'takes_context = True'來訪問上下文;通常要接受請求。使用takes_context的Django標籤有沒有性能問題?

但是否有性能問題。

我的模板如何藉機心智模式是標籤功能可以將代表模板的節點,而此後這些節點可以呈現內容,而無需重新創建節點,或重新分析模板。

但是當然,如​​果標記函數可以返回不同的節點,取決於 上下文中的某些東西,那麼每當上下文不同時(每次I.E)都必須重新創建節點。

要麼,你被卡住哪些節點你第一次圓的,在這種情況下,你不應該返回基於上下文的任何節點(在這種情況下,有什麼意義呢?)。

有人可以清除此爲我?我'使用Django 1.4.2。當裝載模板創建

回答

1

節點。渲染時,上下文只是傳遞給Node的渲染方法。唯一的區別simple_tagtakes_context參數使得沿着你的函數使產生的Node.render碼傳球方面。所以不,沒有性能影響使用takes_context

+0

這是否意味着所有已定義的節點類都已創建?即使沒有標籤使用它? – Chris2048

+0

*類*在包含它們的模塊被加載時創建。據我所知,當解析模板時遇到'{%load xxx%}'時會發生這種情況。在模板加載/解析期間遇到相應標記時,會創建Node *實例*。 – atereshkin

+0

我認爲僅當標籤使用該節點時才創建實例? – Chris2048