Ich habe eine Mako-Vorlage A, die Mako-Vorlage B mehr als einmal enthält. Mako Template B erwartet bestimmte Argumente und ich muss sie auf unterschiedliche Werte auf Include setzen.Ist es möglich, variable Argumente an das Include-Tag in Mako zu übergeben?
In 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'"
/>
In B.mak:
<%page args="lItems, foo"/>
%for dItem in lItems:
etc
Ist diese Art der Sache überhaupt möglich? Ich weiß, dass es funktionieren wird, wenn ich lItems auf 'some_value' und 'some_other_value' setze (dh Strings, die direkt in A.mak codiert sind), aber ich möchte A.mak mit some_variable = [some,craze,list]
und some_other_variable = [some,other,craze,list]
rendern.
Der obige Code gibt mir den Fehler:
File ".../mako/runtime.py", line 202, in __str__
raise NameError("Undefined")
NameError: Undefined
Ich versuchte auch, die wie so umfasst dabei:
<%include
file="/components/B.mak"
args="lItems=${some_other_variable}, foo='moooo'"
/>
aber das ist ein Syntaxfehler ...
versuchte ich es mit einem def auch:
${the_B_def(foo='bar',lItems=some_variable)}
und bekam NameError: Undefined
.
Meine Frage ist also: Wie kann ich Variablen an Vorlagen 'innerhalb' einer Vorlage übergeben?
Docs haben ein Beispiel: http://docs.makotemplates.org /en/latest/syntax.html#include – Javier