8
我有一個包含mako模板B的mako模板A不止一次。 Mako模板B期望某些參數,我需要將它們設置爲include上的不同值。是否有可能將可變參數傳遞給Mako中的包含標記?
在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'"
/>
在B.mak:
<%page args="lItems, foo"/>
%for dItem in lItems:
etc
是這樣的事情甚至可能嗎?我知道如果我將lItems設置爲'some_value'和'some_other_value'(即:將字符串直接編碼到A.mak中),但我想要使用some_variable = [some,craze,list]
和some_other_variable = [some,other,craze,list]
呈現A.mak,則它會起作用。
上面的代碼給我的錯誤:
File ".../mako/runtime.py", line 202, in __str__
raise NameError("Undefined")
NameError: Undefined
我也試着做了包括像這樣:
<%include
file="/components/B.mak"
args="lItems=${some_other_variable}, foo='moooo'"
/>
但是這是一個語法錯誤...
我試了一下使用def還有:
${the_B_def(foo='bar',lItems=some_variable)}
並得到NameError: Undefined
。
所以我的問題是:如何將變量傳遞給'模板內'的模板?
文檔有一個例子:http://docs.makotemplates.org /en/latest/syntax.html#include – Javier