在每个Django页面中传递一个对象

时间:2011-09-22 22:14:25

标签: django templates

我有一个名为Groups的对象,用于我网站上的每个页面。但是,Django只通过render_to_response将Python对象传递给html,并且每当组对象发生某些事情时我都无法呈现响应。

如何维护此对象(如同使其响应添加和删除)并在我没有调用render_to_response的每个Django模板中生成它?

3 个答案:

答案 0 :(得分:5)

写一个template context processor

#my_context_processors.py

def include_groups(request):
    #perform your logic to create your list of groups
    groups = []
    return {'groups':groups}

然后将其添加到您的设置文件中:

#settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
     "django.core.context_processors.auth",
     "django.core.context_processors.debug",
     "django.core.context_processors.i18n",
     "django.core.context_processors.media",
     "path.to.my_context_processors.include_groups",
)

现在,您可以在所有模板中使用变量groups

答案 1 :(得分:1)

如果您需要将数据添加到多个模板上下文中,您应该通过自己的template context processor来实现这一目标。

答案 2 :(得分:1)

您需要创建模板上下文处理器以将对象传递给每个请求。这是一些example