我发现自己在我的mako代码中的所有%def上重复了相同的过滤器属性:
[0-9]*
有没有办法为所有%def指定一组默认过滤器,并避免在我的代码中重复'filter =“trim”'?
我注意到有an option to specify default filters for expression filters,但我找不到类似于%def的东西。
答案 0 :(得分:1)
您可以使用几种解决方法:
default_filters
参数
importing the defs
programmatically或loading them from
a file。您可以在父def中nest the defs并应用 过滤到父def(我当前的机器上没有mako,所以我不能发短信,但我99%肯定这个有用,如果我错了请叫我。)
<%def name="filterdefs()" filter="trim">
<%def name="mydef1(a,b)">
# something something something
</%def>
<%def name="mydef2(b)">
# something something something
</%def>
</def>
最后,您可以按照建议使用buffer_filters
评论。但是,您可以直接添加buffered="True"
使用capture(myDef)
而不是def
myDef()
醇>