2013-12-18 47 views
2

下面是代碼從一個Django模板大塊:Django模板{%if%}:需要平等嗎?

{% for customer in customers %} 
    {% for div in divs|lookup:customer %} 
     <p>:{{ div.custdiv_id }}: vs. :{{ currentDiv }}: ==> 
      {% if div.custdiv_id == currentDiv %} 
       YES! 
      {% else %} 
       NOPE. 
      {% endif %} 
     </p> 
    {% endfor %} 
{% endfor %} 

下面是一些來自呈現模板輸出:

:1: vs. :1: ==> NOPE. 
:7: vs. :1: ==> NOPE. 
:5: vs. :1: ==> NOPE. 
:9: vs. :1: ==> NOPE. 

爲什麼不:1:與:1:印刷「是」?冒號在那裏檢查它是否不是一些間距問題,它似乎不是; div.custdiv_id和currentDiv來自它們各自模型的相同類型 - bigint(20)。我無法弄清楚問題在這裏。

+0

同類型* *。整數'1'和字符串''1''在模板中看起來相同,但不要相等。 –

+0

您可以嘗試添加'| add:「0」'將值強制爲整數。 –

+0

Martijn,即使它們都被拉下了一個模型對象,並且相關字段被定義爲相同類型,但我測試了您的理論,並且您是對的,其中一個是Unicode,另一個是長整型。這意味着還有一個更加神祕的錯誤,但至少你解決了我眼前的問題。謝謝! – shanusmagnus

回答

1

你爲什麼不確實使用的價值{% ifequal div.custdiv_id currentDiv %}

+0

我試過了,但兩種情況下的問題都是一樣的。 – shanusmagnus