2010-05-27 53 views
2

Django模板(1.1版)中的以下代碼段不起作用。Django模板中的奇怪(至少我)行爲

{{ item.vendors.all.0 }} ==> returns "Test" 

但是下面的代碼片段,不會隱藏段落!

{% ifnotequal item.vendors.all.0 "Test" %} 
<p class="view_vendor">Vendor(s): {{item.vendors.all.0}} </p><br /> 
{% endifnotequal %} 

有什麼問題的提示?

謝謝。

回答

6

item.vendors.all.0不返回​​:它返回一個供應商對象,它在轉換爲字符串時給出​​。如果您只將該對象與​​進行比較,它將永遠不會相等。

嘗試比較之前的對象轉換爲字符串:

{% ifnotequal item.vendors.all.0|stringformat:"s" "Test" %} 
+3

或'ifnotequal item.vendors.all.0.name 「測試」',其中'name'是相關模型字段。 – 2010-05-27 11:37:52

+0

我意識到它正在返回「供應商」對象,即我打印時會調用__unicode__方法,但在我比較它們時不會。但是當我打印「名稱」時,模型字段爲空...但解決方案正常工作。謝謝。 – lud0h 2010-05-27 19:24:58