模板继承中的变量从何而来?

Posted

技术标签:

【中文标题】模板继承中的变量从何而来?【英文标题】:Where do the variables in template inheritance come from? 【发布时间】:2011-09-21 15:06:18 【问题描述】:

所以根据我从模板继承中读到的内容,假设你有

base.html
content.html
content_view.py

在 content_view.py 中有一个函数,其 template_name="content.html" 和 content.html 扩展了 base.html。因此 content_view.py 中的函数返回的 locals() 被传递到 content.html 中,并且由于 content.html 扩展了 base.html,因此 locals() 也被传递到 base.html 中。

首先这是正确的吗?

第二,有没有办法将更多没有被content_view.py中的函数初始化的变量传递到base.html中?

第三,信息流总是:urls.py -> views.py -> 模板,urls.py -> views.py -> 模板 -> views.py -> 模板是否可能?如果是的话,你如何编码重定向?

非常感谢!

【问题讨论】:

其实这个问题不是模板继承特有的,因为模板中可用的变量是相同的,无论你是否继承...... 【参考方案1】:

首先这是正确的吗?

不,locals() 不会从视图传递到模板。

传递给模板的变量在调用renderrender_to_response 时在dictionary 参数中指定,从context processors 添加更多数据。您也可以稍后使用custom built template tag 向上下文添加更多变量。

【讨论】:

我的意思是当我说 locals() 从视图传递给模板时,视图函数将返回 render_to_response(template_name, locals(), context_instance=RequestContext(request)),当模板匹配 locals() 中的变量 django 魔术发生了,这不是将 locals() 从视图传递到模板吗? 如果您通过locals(),您将在模板中获得locals()。要添加更多内容,您可以将其导入视图模块并将其添加到字典中,或者使用上下文处理器或自定义模板标签。

以上是关于模板继承中的变量从何而来?的主要内容,如果未能解决你的问题,请参考以下文章

django 模板中的“form.as_p”从何而来?

Qt Creator 项目构建变量从何而来?

spyder中的opencv从何而来

覆盖 UITableViewController 中的 setEdit:调用从何而来?

CSS 中的类名“英雄”从何而来?

Linux系统启动过程的打印信息从何而来?