Mam szablon mako A, który zawiera szablon mako B więcej niż jeden raz. Mako szablon B oczekuje pewnych argumentów i muszę ustawić je na różne wartości w include.Czy można przekazywać zmienne argumenty do znacznika include w Mako?
W A.mak:
<%include
file="/components/B.mak"
args="lItems=some_variable, foo='bar'"
/>
<%include
file="/components/B.mak"
args="lItems=some_other_variable, foo='moooo'"
/>
W B.mak:
<%page args="lItems, foo"/>
%for dItem in lItems:
etc
Czy coś takiego w ogóle możliwe? Wiem, że zadziała, jeśli ustawię lItems na 'some_value' i 'some_other_value' (tj. Ciągi zakodowane bezpośrednio w A.mak), ale chcę renderować A.mak z some_variable = [some,craze,list]
i some_other_variable = [some,other,craze,list]
.
Powyższy kod daje mi błąd:
File ".../mako/runtime.py", line 202, in __str__
raise NameError("Undefined")
NameError: Undefined
Próbowałem też robi obejmuje tak:
<%include
file="/components/B.mak"
args="lItems=${some_other_variable}, foo='moooo'"
/>
ale to błąd składni ...
spróbowałem użycie def też:
${the_B_def(foo='bar',lItems=some_variable)}
i otrzymałem NameError: Undefined
.
Moje pytanie brzmi: jak przekazać zmienne do szablonów "wewnątrz" szablonu?
Docs mieć przykład: http://docs.makotemplates.org /en/latest/syntax.html#include – Javier