4
目的:ベーステンプレートと子テンプレートの両方でmyargsにアクセスする。現在、私はそれらをどちらか一方だけにアクセスすることができます。Mako:変数をベーステンプレートと子テンプレートに渡す
コール:
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>
子バージョン1を使用すると、myargsが未定義でベースが機能するため、子がエラーをスローします。 子バージョン2を使用すると、myargsが定義されておらず、子が動作するため、ベーススローエラーが発生します。
これらは正確な例ではありませんが、それは私のジレンマの本質です。素敵な継承連鎖を介して変数を渡す方法を誰かが説明できる場合。残念ながら、Makoのドキュメントはこのセクションをスキップしているようです。
あなたは、古いmakoで、私たちは<%page args = "x" />を使用しなければなりませんでした。 –