在tal:condition,Chameleon中使用tal:repeat变量

时间:2013-11-14 11:41:21

标签: python pyramid chameleon template-tal

我正在使用Chameleon的金字塔,我尝试将一个类添加到一个依赖于页码的链接和tal:condition。当我将page_number替换为字符串时,它正在工作,但下面的代码却没有。所以page_number出了问题。任何帮助将不胜感激

<div tal:repeat="page_number range(pages['min'],(pages['max']+1))">
    <a tal:condition="request.matchdict['page_number'] is page_number"
        href="${request.route_url('results', page_number=page_number, searchQuery=request.matchdict['searchQuery'])}"  
        class="page-nav-link">${page_number}
     </a>
     <a tal:condition="request.matchdict['page_number'] is not page_number"
        href="${request.route_url('results', page_number=page_number, searchQuery=request.matchdict['searchQuery'])}"  
        class="page-nav-selected">${page_number}
     </a>
</div>

1 个答案:

答案 0 :(得分:1)

第一个问题:您使用的是身份运算符(“is”)而不是等号运算符(“==”)。由于cpython的实现细节,它“工作”(有点......)的事实是一个意外。

第二个问题:这是一个疯狂的猜测,因为我不太了解你request.matchdict中的真实内容,但是:range()(如果它是python的内置range函数至少返回一个整数列表,我打赌request.matchdict['page_number']是一个字符串。试试这个(如果游览模板引擎允许的话):

<a tal:condition="request.matchdict['page_number'] == str(page_number)"