Цель: получить доступ к 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>
При использовании дочерней версии 1 дочерний элемент выдает ошибку, поскольку myargs не определен, а base работает.
При использовании дочерней версии 2 база выдает ошибку, поскольку myargs не определен, а дочерний объект работает.
Это не точные примеры, но это суть моей дилеммы. Если кто-то может объяснить, как передавать переменные через цепочку наследования, это было бы прекрасно. К сожалению, документация для Мако, кажется, пропускает этот раздел.