2

Pyramids Framework で Chameleon を使用しており、テンプレートのレンダリング中にネストされたリストを繰り返したいと考えています。

私の最小化された HTML コードは次のとおりです。

1. <ul>
2.  <li tal:repeat="item items">
3.      <input tal:attributes="id item.id; onclick item.url">
4.      <label tal:repeat="premise item.values" tal:attributes="for item.id; id premise.id">
5.          <label tal:replace="premise.title"/>
6.      </label>
7.      <label tal:attributes="for item.id" tal:content="item.title"/>
8.  </li>
9. </ul>

これにより、次のjson-Dataを取得しました

[{
    'url': 'location.href="http://..."',
    'values':
    [{
        'id': '70',
        'title': 'some title 1'
    }],
    'attitude': 'justify', 
    'id': '68',
    'title': 'some title 2'
}, {
    'url': 'null',
    'values':
    [{
        'id': '0',
        'title': 'some title 3!
    }],
    'attitude': 'justify',
    'id': '0',
    'title':
    'some title 4'
}]

HTML 行 4.-6. を kill すると、すべて問題ありません。そうしないと、Pyramid/Chameleon がスローします:

  File "/usr/local/lib/python3.4/dist-packages/chameleon/tal.py", line 471, in __call__
    iterable = list(iterable) if iterable is not None else ()
TypeError: 'builtin_function_or_method' object is not iterable

誰かアイデアはありますか?

4

1 に答える 1