【发布时间】: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 的文档似乎跳过了这一部分。
【问题讨论】: