使用 TAL 的嵌套列表
Nested list with TAL
我在 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-lines 4.-6.,一切都很好,否则 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
有人知道吗?
感谢 IRC 中的#pyramid,我得到了第一个提示,评论中提到了这一点。但是..永远不要将键命名为 'value' 或 'values'!
我在 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-lines 4.-6.,一切都很好,否则 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
有人知道吗?
感谢 IRC 中的#pyramid,我得到了第一个提示,评论中提到了这一点。但是..永远不要将键命名为 'value' 或 'values'!