2016-04-23 39 views
1

我正在用Django和Bootstrap构建分页。有这个变量pageNum从我的views.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)进行计算,但是我将原始(字符串类型)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