2016-04-23 5 views
1

Я создаю разбивку на страницы с Django и Bootstrap. Существует эта переменная pageNum, которая передается из моего view.py и указывает текущую страницу. Я использую цикл for для создания разбивки на страницы. Сама разбиение на страницы прекрасно, но когда я сравниваю forloop.counter с pageNum, чтобы добавить class = "active" в текущий li, он не работает. Но когда я на самом деле печатаю значения pageNum и forloop.counter, они идентичны. Вот код:шаблон Django сравнить две переменные не работают

<ul class="pagination"> 
{% for pagination in paginationInfo %} 
     <li {% if forloop.counter == pageNum %} class="active" {%endif%} ><a href="{{pagination}}">{{forloop.counter}}</a></li> 
{% endfor %} 
</ul> 
+0

Не могли бы вы показать свое мнение, где вы расчета и передачи этой 'pageNum'? – AKS

+0

Это переменная GET. Виноват. Я использовал int (pageNum) в представлениях для вычислений, но я передавал шаблон (string type) pageNum в шаблон. – Hemen

+1

Итак, вместо использования 'pageNum | add:" 0 "' в шаблоне, который, как я считаю, не является идеальным решением здесь, вы можете передать целочисленное значение в шаблоне, а затем все будет работать нормально. Я говорю это, потому что тогда, если вы снова захотите использовать 'pageNum' где-то еще в шаблоне, вы можете забыть, что это не' int'. – AKS

ответ

3

Вы, вероятно, передавая pageNum в виде строки в шаблон. Для сравнения, вы должны бросить его в int на ваш взгляд или использовать add фильтр:

<ul class="pagination"> 
{% for pagination in paginationInfo %} 
    <li {% if forloop.counter == pageNum|add:"0" %} class="active" {%endif%} ><a href="{{pagination}}">{{forloop.counter}}</a></li> 
{% endfor %} 
</ul> 
+0

Я использовал фильтр, работал как шарм! Спасибо. Кстати, это был мой первый вопрос в stackoverflow. Отличный опыт. – Hemen

Смежные вопросы