2013-11-14 6 views
0

저는 Chameleon과 함께 피라미드를 사용하고 있으며 tal : condition을 사용하여 페이지 번호에 종속적 인 링크에 클래스를 추가하려고합니다. 문자열에 대해 page_number를 바꿀 때 작동하지만 아래 코드는 그렇지 않습니다. 그래서 뭔가 page_number 잘못되었습니다. 어떤 도움을 주시면 감사하겠습니다.tal : tal : condition에서 반복 변수 사용, Chameleon

<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

첫 번째 문제 : 항등 연산자 ("==") 대신 ID 연산자 ("is")를 사용하고 있습니다. 그것이 "작동 중"이라는 사실은 cpython의 구현 세부 사항으로 인한 사고입니다.

두 번째 문제 : range() (이것은 파이썬의 내장 range 기능이 있다면 적어도 INT의 목록을 반환하고, 내가 내기 : 잘 나는 당신의 request.matchdict 정말,하지만 일에 대해 많이 알고하지 않기 때문에 야생 추측의 종류 request.matchdict['page_number']은 문자열입니다. 대신 둘러보기 템플릿 엔진에서 허용하는 경우 다음을 시도해보십시오.

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