使用takes_context对Django标签有性能影响吗?

时间:2012-10-18 10:36:41

标签: django performance templates render nodes

我有时通过为Django标签提供'takes_context = True'来访问上下文;通常是为了接受请求。

但是有性能影响。

我对模板如何工作的心理模型是标签功能组装代表模板的节点,此后这些节点可以呈现内容而无需重新创建节点,或重新分析模板。

但可以肯定的是,如果标签功能可以返回不同的节点,具体取决于 在上下文中的某些东西,每次上下文不同时都必须重新创建节点(每次都是I.E)。

要不然,或者你被第一次得到的节点所困,在这种情况下你不应该根据上下文中的任何东西返回节点(在这种情况下,重点是什么?)。

有人可以为我清楚吗?我使用的是Django 1.4.2。

1 个答案:

答案 0 :(得分:1)

加载模板时会创建节点。渲染时,上下文只是传递给Node的render方法。唯一的区别是simple_tag的{​​{1}}参数使得生成的takes_context代码传递给您的函数。所以不,使用Node.render没有性能影响。