我正在使用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>
答案 0 :(得分:1)
第一个问题:您使用的是身份运算符(“is”)而不是等号运算符(“==”)。由于cpython的实现细节,它“工作”(有点......)的事实是一个意外。
第二个问题:这是一个疯狂的猜测,因为我不太了解你request.matchdict
中的真实内容,但是:range()
(如果它是python的内置range
函数至少返回一个整数列表,我打赌request.matchdict['page_number']
是一个字符串。试试这个(如果游览模板引擎允许的话):
<a tal:condition="request.matchdict['page_number'] == str(page_number)"