动态包含查询

时间:2012-08-06 08:38:44

标签: python django django-templates

我的基本模板中包含一个页脚:

{% include "footer.html %}

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

6 个答案:

答案 0 :(得分:2)

尽管上下文处理器适合在每个模板中包含标准内容,但我怀疑为了您的目的custom template tag使整个页脚更好用 - 可能包含标记可以完成这项工作。

答案 1 :(得分:1)

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

参考Writing custom context processor

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如何创建Context Processor,并从那里返回查询? 如果您想要的话,结果将在每个视图中都可用?

答案 4 :(得分:0)

你应该编写上下文处理器来解决这个问题:

writing context processors

答案 5 :(得分:0)

到目前为止,此处未提及的另一个选项是custom template tags。根据您想要做什么,上下文处理器可能过度。

相关问题