有关“渲染”快捷方式的文档 https://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#render
根据上面的链接,上下文实例参数定义为
用于渲染模板的上下文实例。默认情况下,模板将使用 RequestContext 实例呈现(填充来自请求和字典的值)。
考虑到这个定义,我没有看到任何可以从提供 context_instance 参数中受益的场景。我的意思是,如果我需要提供额外的上下文值,我只需将它们添加到字典参数中即可。我不知道 context_instance 有什么用处。请赐教。谢谢。
主要场景是使某些变量在模板中可用。例如,auth
上下文处理器(除其他外)使user
可在模板中使用的变量,这样您就不必自己传递它。虽然这是一个相当大的段落,Django 文档 https://docs.djangoproject.com/en/1.3/ref/templates/api/#subclassing-context-requestcontext很好地解释了这一点。
简而言之:通过添加context_instance=RequestContext(request)
给你的render
调用,您定义的所有处理器settings.py
(在下面TEMPLATE_CONTEXT_PROCESSORS
变量)按顺序执行。这些处理器中的每一个都返回一个dict
以及模板中可用的变量。使用默认设置,这意味着您不必添加例如这user
, csrf
or messages
变量自己:这是由处理器完成的。
自己的上下文处理器的一个示例是将主菜单参数添加到模板中。假设您想要突出显示用户正在查看的当前类别的菜单:通过创建自己的上下文处理器来确定当前位置,它可以在模板中添加一些变量,供您的菜单使用来进行突出显示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)