【问题标题】:Mako: passing variables to base and child templatesMako:将变量传递给基模板和子模板
【发布时间】:2011-12-26 17:48:24
【问题描述】:

目标:在基模板和子模板中访问 myargs。目前我只能以其中一种方式访问​​它们。

呼叫:

child.render(myargs={'a':2, b:'5'})

基础摘录:

<%page args="myargs=None, **kwargs"/>
% if myargs['a']:
    a is: ${myargs['a']}
% endif
${self.body(myargs=myargs)}

儿童节选版本 1:

<%page args="myargs=None, **kwargs"/>
<%inherit file="/base.html" />

% if myargs['b']:
    b is: ${myargs['b']}
% endif

儿童节选第 2 版:

<%page args="myargs=None, **kwargs"/>
<%inherit file="/base.html" />
<%def name="body()">
% if myargs['b']:
    b is: ${myargs['b']}
% endif
</%def>

使用 child 版本 1,child 抛出错误,因为 myargs 未定义,并且 base 有效。 使用子版本 2,base 会抛出错误,因为 myargs 未定义,并且 child 可以工作。

这些不是确切的例子,但这是我的困境的本质。如果有人可以解释如何通过继承链传递变量,那就太好了。不幸的是,Mako 的文档似乎跳过了这一部分。

【问题讨论】:

    标签: python templates mako


    【解决方案1】:

    不错的简单解决方案,哈哈。

    事实证明“page args”对这个原因没有用,实际上他们是通过在其中一个页面上用“None”覆盖“myargs”来制造问题。关键字变量可以直接从两个文件中访问,而无需使用“page args”。

    【讨论】:

    • 大声笑,你说得对,在旧的 mako 中我们不得不使用 ,完全删除它也对我有帮助 - 谢谢!
    猜你喜欢
    • 2011-05-08
    • 2013-05-14
    • 1970-01-01
    • 2011-06-03
    • 2017-11-10
    • 2021-09-27
    • 2019-04-03
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多