2013-04-20 2 views
0

내 사이트의 사용자 목록에 대해 페이지 매기기 (트위터 부트 스트랩 사용)를 만들고자합니다. 내가 트위터 부트 스트랩에서했다 HTML 코드는 다음과 같습니다템플릿의 django 변수를 int로 변환합니다.

<div class="pagination" > 
    <ul> 
    {% if users.has_previous %} 
    <li><a href="?page={{ users.previous_page_number }}">Prev</a></li> 
    {% endif %} 

    <li><a href="https://stackoverflow.com/users/?page=1">...</a></li> 
    <li><a href="https://stackoverflow.com/users/?page=2">...</a></li> 
    <li><a href="https://stackoverflow.com/users/?page={{users.number}}">{{users.number}}</a></li> 
    <li><a href="https://stackoverflow.com/users/?page=4">...</a></li> 
    <li><a href="https://stackoverflow.com/users/?page=5">...</a></li> 

    {% if users.has_next %} 
    <li><a href="?page={{ users.next_page_number }}">Next</a></li> 
    {% endif %} 
    </ul> 
    </div> 

나는 아직 장소 '점에 쓰기 모르겠어요. 변수 {{users.number}}를 int로 변환하여 숫자로 작업하고 ({{users.number}} - 1) 등을 사용하여 점 대신 점을 찍으시겠습니까?

필터를 사용해 보았지만 작동하지 않습니다. {{%}}에서만 사용할 수 있고 {{}}에서는 사용할 수없는 것 같습니다.

템플릿에서 바로 만들 수 있습니까? 또는 views.py에서 추가 한 다음 내 템플릿으로 전달해야합니까?

+0

당신이 바퀴를 재발견 안 될 수있다

# templates/templatetags/calculate_numbers.py from django import template register = template.Library() @register.filter def calculate_numbers(n, steps): n = int(n) return range(n-steps, n+steps+1) 

그리고 템플릿에

. [django-bootstrap-pagination] (https://github.com/jmcclell/django-bootstrap-pagination) 또는 [django-bootstrap-toolkit] (https://github.com/dyve/django-bootstrap)을 보았습니까? -toolkit)? – alecxe

+0

네, 맞습니다. 고맙습니다.하지만 장고의 변수를 이해해야합니다. 설명 된 문제로 무엇을해야하는지 알고 있습니까? – shutupandskate

답변

0

add 필터는 인수를 정수로 자동 변환하려고합니다. 따라서 {{ value|add:2 }} 또는 {{ value|add:"2" }}은 값을 int로 변환 할 수있는 경우 6을 반환합니다. 그리고 {{ value|add:-2 }}은 4를 반환해야합니다.

하지만 templatetag 또는 필터도 이와 같을 것이라고 생각합니다. 원하는 번호를 얻을 수있는 간단한 함수입니다. 예를 들어 양방향의 단계가있을 수 있습니다. 2를 입력 한 다음 [n-2, n-1, n, n+1, n+2]의 목록을 반환합니다. 그런 다음 li 태그를 추가하여 목록을 반복 할 수 있습니다.

필터의 예를 들어 다음과 같습니다

{% load calculate_numbers %} 

{% for n in users.number|calculate_numbers:2 %} 
<li><a href="https://stackoverflow.com/users/?page={{ n }}">{{ n }}</a></li> 
{% endfor %} 
+0

고맙습니다. – shutupandskate

관련 문제