我有一个很大很大的mako文件,为了便于维护,我目前正在将其分解为较小的文件。考虑将main.mako作为我的主要(大量)模板文件,将get_raps.mako作为我需要包含的小文件。
main.mako
<%include file="/get_raps.mako"/>get_raps.mako
% for rap in rapset.raps:
<% print rap %>
%endfor在我的代码中:
dirlookup = TemplateLookup(directories=[
os.path.join(
os.path.dirname(__file__),
'templates'
)])
template = Template(
filename=os.path.join(
os.path.dirname(__file__),
'templates',
'LegacyXML.mako'
),
output_encoding="utf-8",
lookup=dirlookup
)当我运行这个命令时,我得到一个错误:
{'coset': <models.Coset.Coset object at 0x109daf990>, 'rap': <models.Raps.Rap.Rap object at 0x109dafa50>}
{'coset': <models.Coset.Coset object at 0x109dafd50>, 'rap': <models.Raps.Rap.Rap object at 0x109daf550>}
{'coset': models.Coset.Coset object at 0x109dafd90>, 'rap': <models.Raps.Rap.Rap object at 0x109dafe10>}
File "/usr/local/lib/python2.7/site-packages/mako/runtime.py", line 899, in _exec_template
callable_(context, *args, **kwargs)
File "_get_raps_mako", line 30, in render_body
TypeError: 'Undefined' object is not callable我知道我正在访问包含数据的小文件,但是为什么我得到类型错误?我是不是遗漏了什么很明显的东西?谢谢
发布于 2017-11-09 15:21:08
我认为你需要改变的是这句话:
<%include file="/get_raps.mako"/>
因为include语句需要文件的正确路径。您确定将该文件保存在根目录下吗?(为什么?)
https://stackoverflow.com/questions/45640870
复制相似问题