我有一个很大的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
我知道我正在使用数据到达小文件,但为什么我会收到类型错误? 我错过了一些非常明显的东西吗?谢谢
答案 0 :(得分:0)
我认为这是你需要改变的声明:
<%include file="/get_raps.mako"/>
因为include
语句需要文件的正确路径。您确定将文件保留在根目录中吗? (为什么?)