2017-08-11 5 views
1

私は現在、メンテナンスの容易さのために小さなファイルに分割している大きな巨大なmakoファイルを持っています。 main.makoをプライマリ(大規模)テンプレートファイル として、get_raps.makoをインクルードする必要がある小さなファイルとして考えてみましょう。Makoテンプレートの参照エラー:TypeError

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

私はそれはあなたが変更する必要があり、この文だと思う:include文は、ファイルの正しいパスを必要と

<%include file="/get_raps.mako"/>

ので。ファイルをルートに保存していることは確実ですか? (なぜ?)

関連する問題