2016-05-11 2 views
0

Ich habe die folgende Vorlage basiert Paginierung:django paginator Seitenzahlen arbeiten nicht mit, wenn

{% for ipage in transactions.paginator.page_range %} 

    <li {% if ipage == page %} class="active"{%endif%}><a href="?page={{ ipage }}">{{ipage}} - {{page}}</a></li> 
{% endfor %} 

Die Ansichtsseite sieht wie folgt aus:

trans_list = Transaction.objects.all() 

    paginator = Paginator(trans_list, 15) 

    page = request.GET.get('page') 
    try: 
     transactions = paginator.page(page) 
    except PageNotAnInteger: 
     transactions = paginator.page(1) 
    except EmptyPage: 
     transactions = paginator.page(paginator.num_pages) 

    context = { 
     'page':page, 
     'transactions':transactions, 
    } 

ipage und page sowohl die Seitennummer drucken, aber Die if zeigt die aktive Klasse nicht, wenn sie in der for-Schleife übereinstimmen.

Wie kann ich herausfinden, ob die Seitenzahl und der for-Schleifenindex übereinstimmen?

Antwort

1

Das sollte den Trick tun.

{% for ipage in transactions.paginator.page_range %} 
    {% ifequal ipage transactions.number %} 
     <!-- Do something special for this page --> 
    {% else %} 
     <!-- All the other pages --> 
    {% endifequal %} 
{% endfor %} 
+0

Das hat es geschafft! ifequal, ich habe das vorher nicht gesehen. – Atma

+0

@Atma - das ist, weil es veraltet ist - [docs] (https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#ifequal-and-ifnotequal) – Sayse

+0

@Sayse Ich sah das in den Dokumenten. Was kann ich stattdessen tun? – Atma