2016-04-23 47 views
1

私はDjangoとBootstrapでページネーションを作成しています。私のviews.pyから渡され、現在のページを示すこの変数pageNumがあります。私はforループを使用してページネーションを生成します。ページネーション自体は問題ありませんが、forloop.counterとpageNumを比較すると、現在のliにclass = "active"を追加できません。しかし、私がpageNumとforloop.counterの値を実際に印刷するとき、それらは同じです。Djangoテンプレートが2つの変数を比較できない

<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)を使用しましたが、raw(string型)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

関連する問題