2016-05-21 6 views
0

In views.py:die zweite, wenn Block funktioniert nicht in django Vorlagendatei

all_pages = 5 

In HTML-Datei:

{% if all_pages > 2 %} 
    <a href='...'>next</a>|<a href='...'>prev</a> 
{% endif %} 

{% if all_pages = page %} 
    <a href='...'>prev</a> 
{% endif %} 

Aber wenn ich in der 5. Seite, noch beide <a> Tags erscheinen.

Warum funktioniert der zweite if Block nicht?

Und wie kann ich es beheben?

============ meine Frage für die Aktualisierung =========

in views.py:

def main(request): 
    list = PMenu.objects.all() 
    kol = request.META['PATH_INFO'] 
    kol = kol[6:] 
    mylist = kol.split('-') 
    os = mylist[0] 
    sh = mylist[1] 
    en_chest_name = mylist[2] 
    cc = mylist[3] 
    page = mylist[4] 
    next_page = int(page) + 1 
    prev_page = int(page) - 1 
    senf = PDivContent.objects.get(id=cc) 
    ######################################################### 
    users = PUser.objects.filter(ostan=os, shahr=sh, content_id=187) 
    ######################################################### 
    all_users = 20 
    all_pages = math.ceil(all_users/4) 
    one = type(all_pages) 
    two = type(page) 
    ######################################################### 
    And return part goes here... 

In main.html:

current page: {{ page }}<br> 
all users: {{ all_users }}<br> 
all pages: {{ all_pages }}<br> 
content_id: {{ cc }}<br> 
next page: {{ next_page }}<br> 
type of all_pages: {{ one }}<br> #output => 0 
type of page: {{ two }}   #output => was empty 
<hr> 



{% if all_pages == 1 %} 
    there is only one page 
{% elif all_pages > 1 and page == '1' %} 
    <a href='/main/{{ os }}-{{ sh }}-{{ en_chest_name }}-{{ cc }}-{{ next_page }}'>next</a> 
{% elif all_pages > 1 and page == all_pages %} 
    this is the last page 
{% else %} 
    <a href='/main/{{ os }}-{{ sh }}-{{ en_chest_name }}-{{ cc }}-{{ next_page }}'>next</a>|<a href='/main/{{ os }}-{{ sh }}-{{ en_chest_name }}-{{ cc }}-{{ prev_page }}'>prev</a> 
{% endif %} 
+0

Ich vermute, Sie haben ein Syntaxproblem, ändern Sie die zweite, wenn wie: '{% if all_pages == page%}' – sheshkovsky

+0

Ich habe das versucht, aber nicht funktioniert. – niloofar

+0

Syntax sollte so sicher sein. Es könnte auch einige Probleme im 'views.py' geben. Sie sollten es also in Ihre Frage aufnehmen. – sheshkovsky

Antwort

1

page scheint eine Zeichenfolge, hier zu sein geben Sie nicht eine ganze Zahl, während all_pages ganze Zahl ist. Sie können sie also nicht vergleichen. Auch würde ich vorschlagen, Ihre Variablen als URL-Argumente zu übergeben, anstatt Ihrer derzeitigen Ansatz wird es viel sauberer und schneller.

Verwandte Themen