2016-01-22 70 views
2

我在金字塔框架中使用變色龍,並且想要在呈現模板時重複嵌套列表。與TAL嵌套列表

我最小的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數據

[{ 
    '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,一切都很好,否則。金字塔/變色龍拋出:

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 

任何一些想法?

+0

好吧,我在第4行嘗試過tal:repeat =「premise item.values()」,但是然後premise.id拋出「字符串索引必須是整數」。如果我解決這個問題,premise.id會拋出:「列表索引必須是整數,而不是str」... oO? –

回答

0

感謝IRC中的#pyramid,我得到了第一個提示,這在評論中提到。但是......永遠都不會說出一個關鍵的「價值」或「價值觀」!