2012-08-06 75 views
0

我包括在我的基础模板与页脚:动态包括与查询

{% include "footer.html %} 

我需要证明它在每一个页面。但是页脚每次页面加载时都需要使用多个查询来计算多个静态页面。 据我所知,这包括无法运行查询,因为任何视图被调用。我不想在所有视图中复制查询,我认为这是一个肮脏的解决方案。 这种情况下的最佳做法是什么?我认为这是一个很常见的问题。

回答

1

如果统计信息是全局的(与特定页面/请求不相关),则可以实现自定义上下文处理器,该处理器可以计算统计信息并在上下文中添加相应的变量。 footer.html可以使用该上下文变量/字典来进行统计。

参考Writing custom context processor

+0

uhm,但它们不适用于render_to_response – tapioco123 2012-08-06 14:56:42

0

您可以使用context processors在所有视图运行查询,并提供必要的数据更新您的上下文。

0

如何创建上下文处理器,并从那里返回查询? 如果这是您的愿望,结果将在每个视图中都可用?

0

另一种选择此处不再赘述至今都custom template tags。取决于你想要做什么,上下文处理器可能是矫枉过正的。

2

尽管上下文处理器很适合在每个模板中包含标准的东西,但我怀疑您的目的是一个custom template tag,这表示整个页脚会是一个更好的选择 - 可能是一个包含标签可以完成这项工作。