【问题标题】:Nested list with TAL使用 TAL 的嵌套列表
【发布时间】:2016-04-29 01:30:55
【问题描述】:

我在 Pyramids 框架中使用 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

有人有什么想法吗?

【问题讨论】:

  • 好的,我已经在第 4 行尝试了 tal:repeat="前提 item.values()",但是随后 前提.id 抛出“字符串索引必须是整数”。如果我解决这个问题,premature.id 会抛出:“list indices must be integers, not str” ... oO ?

标签: pyramid markup chameleon tal


【解决方案1】:

感谢 IRC 中的#pyramid,我得到了第一个提示,评论中提到了这一点。但是..永远不要将键命名为“值”或“值”!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多