【发布时间】:2014-01-30 12:04:24
【问题描述】:
base.html 用作所有其他页面的基本模板。 base.html 有导航栏,在导航栏中,我想显示用户收到的消息数量。因此,我需要在base.html 中有一个类似{{number_of_messages}} 的变量。
但是,我应该如何将这个变量传递给它?每个模板都扩展 base.html 并由函数呈现。我不认为在所有函数中返回 number_of_messages 是一个好方法。有没有更好的方法来实现这一点?如何将此变量传递给所有模板?
【问题讨论】:
-
你看过 django 模板上下文处理器吗?也许最短的答案是创建您自己的上下文处理器并将其放入您的设置文件中的
TEMPLATE_CONTEXT_PROCESSORS。我的 cmets 应该是一个答案吗?参考:docs.djangoproject.com/en/dev/ref/templates/api/… -
嗨,Yeo,我没看过。是否可以通过使用包含标签并将包含标签放在 base.html 中来实现这一目标?
-
我认为根据您的主要问题,模板中的变量称为
context。include标签,做不同的事情,但当然你可以在包含的模板中传递上下文,如{% include "name_snippet.html" with person="Jane" greeting="Hello" %}。但是您仍然需要正确的上下文...docs.djangoproject.com/en/dev/ref/templates/builtins/#include -
希望您设法解决了您的问题。如果您仍有问题,请告诉我:-)
-
谢谢。我觉得这本书很好,我将继续完成它:b-list.org/weblog/2006/jun/14/…